不知道是什麼原因導致這我試過幾個建議似乎沒有任何幫助。我已經調試了幾十次我的應用程序,並且在調試所有步驟時都沒有發生問題。但是,當我發佈我的應用程序並允許人們使用它時,問題發生時並不是每個人都隨機決定複選框未被選中,並且在前端也跳過了整個過程,所以我有一個驗證,要求至少一個複選框在button_click將會觸發前進行檢查,所以我知道他們必須檢查一個。循環gridview並不總是工作
的GridView
<div id="divEventDetail">
<asp:GridView ID="grdEventDetail" runat="server" AutoGenerateColumns="False" DataKeyNames="EDID" Width="381px" OnRowDataBound="grdEventDetail_RowDataBound" GridLines="Horizontal">
<Columns>
<asp:TemplateField HeaderText="EventID" Visible="False">
<ItemTemplate>
<asp:Label ID="lblEventID" runat="server" Text='<%# Eval("EDID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Register" ItemStyle-CssClass="template-center">
<ItemTemplate >
<asp:CheckBox ID="chkRegister" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Wait List" ItemStyle-CssClass="template-center">
<ItemTemplate>
<asp:CheckBox ID="chkWaitList" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
代碼隱藏
protected void registerEvent()
{
foreach (GridViewRow row in grdEventDetail.Rows)
{
CheckBox chkR = row.FindControl("chkRegister") as CheckBox;
CheckBox chkW = row.FindControl("chkWaitList") as CheckBox;
if (chkR != null && chkW != null)// It is a datarow
{
GridViewRow Rowr = ((GridViewRow)chkR.Parent.Parent);
GridViewRow Roww = ((GridViewRow)chkW.Parent.Parent);
if ((chkR.Checked) || (chkW.Checked))
// if ((((CheckBox)row.FindControl("chkRegister")).Checked == true) || (((CheckBox)row.FindControl("chkWaitList")).Checked == true))
{
Label eventID = row.FindControl("lblEventID") as Label;
***Then i do my database stuff here
我可以看看你的GridView的形象? 我想知道爲什麼代碼引用多行'Rowr'和'Roww'。 – Jumpei
添加了我的gridview – Tim
您可能正在運行跨瀏覽器問題。我會建議添加一些日誌記錄,並詢問您的客戶端使用哪個瀏覽器。 – ThiagoPXP