2013-07-18 29 views
0

全部, 我爲GridView的每一行添加了一個CheckBox。但回發時,我很難從GridView找到CheckBox獲取GridView中的複選框或收音機

這是我所做的代碼。請檢查它。謝謝。

protected void GridViewThirAct_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       SomeObject mapItem = (SomeObject)e.Row.DataItem; 
       string itemId = mapItem.ItemId; 

       Literal lit = e.Row.FindControl("SelectButtonMarkup") as Literal; 

       if (IsThirdSeriesMultipleSelect) 
       { 
        lit.Text = String.Format("<input type='checkbox' name='FinalActivity' id='RowSelector{0}' value='{1}'", e.Row.RowIndex, itemId); 
       } 
       else 
       { 
        lit.Text = String.Format("<input type='radio' name='FinalActivity' id='RowSelector{0}' value='{1}'", e.Row.RowIndex, itemId); 
       } 
       lit.Text += " />"; 


      } 
     } 

Aspx中的代碼如下。

<asp:GridView ID="GridViewThirAct" runat="server" AutoGenerateColumns="false" Width="100%" 
     OnRowCreated="GridViewThirAct_RowCreated" OnRowDataBound="GridViewThirAct_RowDataBound"> 
     <Columns> 
      <asp:TemplateField ItemStyle-Width="5%"> 
       <ItemTemplate> 
        <asp:Literal ID="SelectButtonMarkup" runat="server"></asp:Literal> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:BoundField DataField="ItemValue" HeaderText="Activity Name" ItemStyle-Width="80%" /> 
      <asp:BoundField DataField="ItemId" HeaderText="ID" ItemStyle-Width="15%" /> 
     </Columns> 
    </asp:GridView> 

<asp:LinkButton ID="btnOk" runat="server" onclick="btnOk_Click"></asp:LinkButton> 

我想獲取按鈕單擊事件中的所有選擇值。謝謝。

我已經使用Request.Form["FinalActivity"],使之。但我在想有沒有其他的方法來檢索重複GridViewRowsCheckBox控制? 我試過代碼this.GridViewThirAct.Rows[i].Cells[0].FindControl(controlId),但它不起作用。謝謝。

+0

我不能看到複選框在你的GridView –

+0

您可以發佈渲染代碼 – Amit

+0

@ Md.ParvezAlam在'RowDataBound'事件,我用html''更新'Literal'文本屬性。它將在用戶界面中呈現一個「CheckBox」。請檢查它。謝謝。 –

回答

1

嘗試:
的.aspx

<asp:GridView ID="grdFoodList" AutoGenerateColumns="False" runat="server"> 
     <Columns> 
     <asp:TemplateField> 
      <HeaderTemplate> 
       Select 
      </HeaderTemplate> 
      <ItemTemplate> 
       <asp:CheckBox runat="server" ID="selectFood" /> 
      </ItemTemplate> 
     </asp:TemplateField> 

後面的代碼:

for (int rows = 0; rows < grdFoodList.Rows.Count; rows++) 
     { 
      if (((CheckBox) grdFoodList.Rows[rows].Cells[0].FindControl("selectFood")).Checked) 
      { 
       //your code 
      } 

     } 
+0

@Rminasadi,我知道它確實有用,但是如何在我的情況下找到它?謝謝。 –

相關問題