我想从gridview获取单元格值,但返回空字符串。我实现了 radiobuttonlist的selectedindexchanged事件中的代码.I迭代gridview 并通过代码访问单元格。但问题是stll剩余。我使用了三个itemtemplate,每个 有一个元素,以便每个元素得到自己的coulmn .aspx
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" >
<Columns>
<asp:TemplateField>
<itemtemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("qno") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("description")
%>'>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<itemtemplate>
<asp:RadioButtonList ID="RadioButtonList1" RepeatDirection="Horizontal"
runat="server" OnSelectedIndexChanged="changed" AutoPostBack="true" >
<asp:ListItem Value="agree" Selected="True" >
</asp:ListItem>
<asp:ListItem
Value="disagree">
</asp:ListItem>
<asp:ListItem Value="strongagree">
</asp:ListItem>
<asp:ListItem Value="strondisagree">
</asp:ListItem>
</asp:RadioButtonList>
</itemtemplate>
</templatefield>
</Columns>
</asp:GridView>
<asp:Label ID="Labe11" runat="server" ></asp:Label>
Code behind: public void changed(object sender, EventArgs e) {
for(int i=0;i<GridView2.Rows.Count;i++)
{
string labtext;
RadioButtonList list =
GridView2.Rows[i].Cells[2].FindControl("RadioButtonList1") as RadioButtonList;
labtext= GridView2.Rows[i].Cells[0].Text;
Label1.Text = labtext;
}
}
答案 0 :(得分:0)
您是否已包含上述.aspx页面中的所有HTML?你有什么不会工作。 ItemTemplates不会形成列,它们包含在 TemplateField列中。
示例(改编自您的代码,
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.itemtemplate.aspx
和http://msdn.microsoft.com/en-us/library/aa479353.aspx):
<asp:GridView ID="GridView1" Runat="server"
<Columns>
<asp:TemplateField HeaderText="Description">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("description") %>'>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Choice">
<ItemTemplate>
<asp:RadioButtonList ID="RadioButtonList1" RepeatDirection="Horizontal" runat="server" OnSelectedIndexChanged="changed" AutoPostBack="true" >
<asp:ListItem Value="agree" Selected="True" />
<asp:ListItem Value="disagree" />
<asp:ListItem Value="strongagree" />
<asp:ListItem Value="strondisagree" />
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
每列需要一个单独的TemplateField定义。
答案 1 :(得分:0)
请改为尝试:
GridView2.Rows[i].FindControl("RadioButtonList1") as RadioButtonList;
此致 西瓦库玛