我有一個gridview,在gridview的列中我有2個複選框與不同的ID 所以我做了一個foreach循環後,我點擊一個按鈕(更新按鈕)循環行,並檢查該特定行的複選框是否被選中,然後我想單擊按鈕後一起更新所有行循環GridView中的複選框,以檢查複選框的選中
我在Page_Load()中填充gridview,foreach循環根據但它不會進入我的If語句檢查複選框是否被選中
這是我的代碼:
protected void btnUpdate_Click(object sender, EventArgs e)
{
int count = 0;
foreach (GridViewRow row in GridView1.Rows)
{
count++;
if (((CheckBox)row.FindControl("showBbtn")).Checked & ((CheckBox)row.FindControl("showCbtn")).Checked) // if 2 buttons are checked show error popout
{
Response.Write(@"<script language='javascript'>alert('You can only select Yes or No')</script>");
}
else
{
if (((CheckBox)row.FindControl("showCbtn")).Checked) // Won't enter
{
//Do something here.
}
if (((CheckBox)row.FindControl("showBbtn")).Checked) // Won't enter
{
// Do something here.
}
}
}
Response.Write(count);
}
這也是我如何填充我的GridView:
protected void Page_Load(object sender, EventArgs e)
{
BindQuestion(); // Foreach loop count is according to the number of rows
if (!Page.IsPostBack)
{
// BindQuestion(); // Can enter the if loop but the foreach loop count is only 1.
}
}
我的aspx:
<asp:TemplateField HeaderText="Display">
<ItemTemplate>
<asp:CheckBox ID="showCbtn" runat="server" Text = "Yes" />
<br />
<asp:CheckBox ID="showBbtn" runat="server" Text = "No" />
</ItemTemplate>
</asp:TemplateField>
我認爲你應該只使用一個複選框。如果選中,則更新行,否則不行。 – mit
我用2複選框,因爲我想他們選擇是或否,然後我會更新是或否進入特定記錄的數據庫,現在的問題是,它不會進入if語句,我想更新整個gridview – what
如果你想最終用戶顯示是和否選項,用戶應該能夠選擇其中任何一個,那麼你可以使用單選按鈕。 – SpiderCode