2009-07-16 4 views
1

ich so etwas wie dies mit einem Gridview zu tun:Set Command Wählen visibilty von aspx Seite

<asp:CommandField ShowSelectButton="True" Visible='<%# return Eval("SC_TABLE") %>' /> 

Aber das funktioniert nicht mit Fehlern kommen:

Databinding expressions are only supported on objects that have a DataBinding event. System.Web.UI.WebControls.CommandField does not have a DataBinding event.

Gibt es trotzdem Ich kann die Sichtbarkeit von der aspx-Seite einstellen? PS: SC_TABLE existiert von der Datenquelle, also nichts falsch von diesem Teil.

Antwort

3

Sie diese stattdessen mit einem Template tun könnte ...

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:LinkButton runat="server" ID=SelectButton CommandName="SELECT" Visible='<%# Eval("SC_TABLE") %>' Text="Select" /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

+1: Ich hatte gehofft, es mit CommandField zu tun. Ich wusste schon davon, aber es hilft immer noch. Naja, scheint unmöglich mit CommandField. :( – waqasahmed

+0

Wenn nicht jemand anderes eine bessere Antwort geben kann, werde ich diese Antwort in ein paar Tagen als akzeptiert markieren. – waqasahmed

1

fand ich die Antwort am Ende der this post:

Grundsätzlich müssen Sie das RowCreated Ereignis auf dem Datagrid erfassen

OnRowCreated = "GridView1_RowCreated"

Dann wird auf der aspx.cs Seite den folgenden Code Kontrollen zu verbergen:

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowIndex == 1) 
    { 
     e.Row.Cells[0].Controls.Clear(); 
    } 
} 

Es funktioniert, wenn Sie ein CommandField in der ersten Spalte haben.