Gridview içindeki commandfield alanını gizleyebilmek için expression kullanılmamaktadır, commonfield sınıfı tarafından desteklenmediğine dair visual studio'da uyarı vermektedir:
<asp:CommandField SelectText="Seç" ShowSelectButton='<%# (Eval("Odultur").ToString()="03")?true:false %>' />
verilen hata:
Databinding expressions are only supported on objects that have a DataBinding event. System.Web.UI.WebControls.CommandField does not have a DataBinding event.
İsteneni yapabilmek için değişik çözümler bulunmaktadır.
Bunlardan biri şu şekildedir:
vb ile yazılı:
Protected Sub gdproductBacklog_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim c As DataControlFieldCell = TryCast(e.Row.Cells(3), DataControlFieldCell)
Dim comField As CommandField = TryCast(c.ContainingField, CommandField)
comField.ShowEditButton = hideButtonBasedOnRole()
End If
End Sub
kullanılan gridview şu şekilde:
<asp:GridView ID="gdproductBacklog" runat="server" AutoGenerateColumns="False"
CssClass="backlogtable" DataKeyNames="storyID">
<RowStyle CssClass="story" />
<Columns>
<asp:BoundField DataField="storyPriority" HeaderText="Priority" />
<asp:BoundField DataField="storyDescription" HeaderText="User Story" />
<asp:BoundField DataField="storyPoints" HeaderText="Story Points" />
<asp:CommandField ShowEditButton="True" />
</Columns>
<HeaderStyle CssClass="headerrow" />
</asp:GridView>
Kaynak:
Hiç yorum yok:
Yorum Gönder