none
求教!如何获取GridView中ItemTemplate中的控件值? RRS feed

  • 问题

  • 页面代码如下:
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
        AllowPaging
    ="True" PageSize="1" DataSourceID="SqlDataSource1" onpageindexchanged="GridView1_PageIndexChanged">
           
    <Columns>
                
    <asp:TemplateField>
                     
    <ItemTemplate>
                          
    <table style="width: 100%; height: 358px">
                              
    <tr>
                                 
    <td colspan="2">
                                    
    <asp:Label ID="Label11" runat="server" Text="作答:"></asp:Label>
                                    
    <asp:RadioButton ID="RadioButton1" runat="server" ForeColor="Red"
                                                GroupName
    ="as" Text="A" />
                                    
    <asp:RadioButton ID="RadioButton2" runat="server" ForeColor="Red"
                                                GroupName
    ="as" Text="B" />
                                    
    <asp:RadioButton ID="RadioButton3" runat="server" ForeColor="Red"
                                                GroupName
    ="as" Text="C" />
                                    
    <asp:RadioButton ID="RadioButton4" runat="server" ForeColor="Red"
                                                GroupName
    ="as" Text="D" />
                                 
    </td>
                               
    </tr>
                          
    </table>
                      
    </ItemTemplate>
               
    </asp:TemplateField>
            
    </Columns>
    </asp:GridView> 
    我想获取GridView中ItemTemplate中table中用户选了哪个RadioButton,当PageIndexChanged事件触发时。我在cs文件中如何获取?

    2009年1月6日 17:57

答案

  • Code Snippet


    protected void GridView1_PageIndexChanged(object sender, EventArgs e)
    {
    foreach (GridViewRow gvr in this.GridView1.Rows)
    {
    RadioButton r1 = gvr.FindControl("RadioButton1") as RadioButton;
    if (r1 != null)
    {
    Response.Write("<li>" + r1.Checked);
    }
    }
    }



    你这种功能使用
    RadioButtonList好些吧
    2009年1月7日 6:02
    版主

全部回复

  • FindControl

    另外你要清楚你要找哪行的
    2009年1月7日 0:19
    版主
  •  

    如何找啊?这里我是翻页触发事件。仿佛没有关联到哪一行啊?我设为一页一行数据。我觉得好像要在某页中查找控件。但是怎么做我却不知道....能说详细些吗?或则cs文件中我该怎么写?
    2009年1月7日 4:40
  •  

    FindControl 去查找
    2009年1月7日 5:30
  • Code Snippet


    protected void GridView1_PageIndexChanged(object sender, EventArgs e)
    {
    foreach (GridViewRow gvr in this.GridView1.Rows)
    {
    RadioButton r1 = gvr.FindControl("RadioButton1") as RadioButton;
    if (r1 != null)
    {
    Response.Write("<li>" + r1.Checked);
    }
    }
    }



    你这种功能使用
    RadioButtonList好些吧
    2009年1月7日 6:02
    版主
  • 谢谢!问题解决了

    2009年1月8日 15:46