1
我有一個Gridview控件,並且我在項目模板中放置了一個RadioButton。當我點擊一個按鈕時,我試圖獲取單選按鈕的選中屬性。但是當我點擊選中的屬性總是返回false。請查看下面的代碼,並讓我知道我犯了什麼錯誤。GridView中RadioButtons的檢查狀態在回發後不會改變
ASPX代碼
<asp:GridView ID="gvDepartments" runat="server" AutoGenerateColumns="False" GridLines="None"AllowPaging="true" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="rdbtn" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="lbl" runat="server"></asp:Label>
<asp:Button ID="btn" runat="server" Text="Save" OnClick="btn_Click" CssClass="button small"/>
代碼隱藏按鈕點擊
foreach (GridViewRow row in gvDepartments.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
RadioButton rd = (RadioButton)row.FindControl("rdbtn");
lbl.Text += rd.Checked.ToString();// +rd1.Checked.ToString();
}
}
結果將是假始終顯示在標籤始終。我在應用程序中使用Ajaxcontroltoolkit,上面的控件出現在更新面板中,我甚至試圖將按鈕和事件放在觸發器中,但結果是一樣的。請幫忙。
問候,
Nuthan A R
你什麼時候分配並加載'GridView'的'DataSource'?請注意,你應該只做'if(!IsPostBack)'而不是每次回發。 –
什麼是數據源,數據來自數據庫? –
你在哪裏使用foreach語句?你的Page_Load事件或btn_Click內?如果它在Page_Load中,則值始終爲false,但如果將循環放置在btn_Click方法內,則它應該可以正常工作,除非您從頁面加載調用它而不檢查IsPostBack屬性 –