2011-12-05 32 views
0

我有一個gridview這將顯示行中的數據庫表的內容。那裏有一個CheckboxField和一個Select按鈕。我想在檢查checkboxfield時將按鈕可見性設置爲false。複選框字段值控件按鈕可見性

這是我的aspx頁面:

<asp:DetailsView ID="DetailsViewERgo" runat="server" Height="50px" 
    Width="100%" AutoGenerateRows="False" CellPadding="4" 
    DataSourceID="LinqDataSourceErgo" ForeColor="#333333" GridLines="None" 
    HeaderText="Σύντομη Περιγραφή Επιλεγμένου Έργου">  
    <Columns> 
     <asp:CheckBoxField DataField="Diekperewsi" HeaderText="Answered" 
      SortExpression="Diekperewsi" Visible="True" 
      ItemStyle-HorizontalAlign="Center"> 
      <ItemStyle HorizontalAlign="Center" /> 
     </asp:CheckBoxField> 
     <asp:TemplateField HeaderText="Insert Answer" ShowHeader="False"> 
      <ItemTemplate> 
       <center> 
        <asp:Button ID="Button1" runat="server" CausesValidation="False" 
         CommandName="Select" Text="Επιλογή" Visible="true" > 
        </asp:Button> 
       </center> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

我都試過,但只能用複選框工作

protected void GridViewAitima_RowDataBound(object sender, GridViewRowEventArgs e) 
{  
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     CheckBox cb = (CheckBox)e.Row.FindControl("Diekperewsi"); 
     Button b = (Button)e.Row.FindControl("Button1"); 
     if (!cb.Checked) 
     { 
      b.Visible = false; 
     } 
     else 
     { 
      b.Visible = true; 
     } 
    } 
} 
+0

有在.aspx沒有這樣的控制 'Apantisi'? – Shai

+0

你最好縮小問題範圍,增加更少的代碼,並在你的解釋中更加精確。 –

+0

是否使用客戶端腳本作爲此切換的選項? – V4Vendetta

回答

0

您的代碼將在服務器端運行,但它看起來好像在AutoPostBack財產爲您的複選框未設置爲真 -

AutoPostBack="True" 

因此,當複選框是chec ked代碼不會立即運行,它只會在另一個事件導致頁面回發後才運行。

+0

CheckboxField沒有AutoPostBack定義 – user1081429

+0

我必須承認我不記得曾經使用這個屬性,但是這裏有一些MSDN文檔 - http://msdn.microsoft.com/en-us/library/system。 web.ui.webcontrols.checkbox.autopostback(v = vs.71)的.aspx – ipr101

0

CheckBoxField沒有標識,因此您無法通過標識找到它,而且它沒有任何值特性。 我建議你使用模板字段就像你用於按鈕,而是把一個複選框。

所以不是:

<asp:CheckBoxField DataField="Diekperewsi" HeaderText="Answered" 
        SortExpression="Diekperewsi" Visible="True" 
        ItemStyle-HorizontalAlign="Center"> 
       <ItemStyle HorizontalAlign="Center" /> 
</asp:CheckBoxField> 

地說:

<asp:TemplateField> 
       <ItemTemplate> 
       <asp:CheckBox ID="Diekperewsi" Enabled="false" Checked='<%#Eval("Diekperewsi")%>' runat="server" /> 
       </ItemTemplate> 
</asp:TemplateField> 

,你是好