Google Analytics İzleme

13 Nisan 2010

Gridview içindeki commandfield alanının koşullara göre gizlenip, görüntülenmesi işlemi

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&#231;" 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: