我在ASP.NET应用程序中使用了网格视图。
<asp:GridView ID="grdView" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkbox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Jurisdiction">
<ItemTemplate>
<asp:Label ID="lblJurisdiction" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="License Number">
<ItemTemplate>
<asp:TextBox ID="txtLicenseNumber" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在cs文件中
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in grdView.Rows)
{
for (int i = 0; i < grdView.Columns.Count; i++)
{
String cellText = row.Cells[i].Text;
}
}
}
请注意,上面的网格将由数据填充。现在我需要从已经填充的gridview获取数据。上面的代码不起作用。此外,我需要从标签,文本框,网格内的复选框值中检索。请帮忙 !!!
答案 0 :(得分:1)
您可以使用FindControl
方法检索控件的数据: -
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in grdView.Rows)
{
CheckBox chkbox = row.FindControl("chkbox") as CheckBox;
Label lblJurisdiction = row.FindControl("lblJurisdiction") as Label;
..and so on
//Finally retrieve the data like your normal control
string labelText = lblJurisdiction.Text;
}
}
答案 1 :(得分:0)
检查行类型是否为DataControlRowType.DataRow
。
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in grdView.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < grdView.Columns.Count; i++)
{
String cellText = row.Cells[i].Text;
}
}
}
}
要获取TextBox,网格中的CheckBox值使用此
string TextBoxvalue = ((TextBox)GridViewID.Rows[i].FindControl("TextBoxName")).Text;
string CheckBoxvalue = ((CheckBox)GridViewID.Rows[i].FindControl("CheckBoxName")).Text;
答案 2 :(得分:0)
使用GridViewRow.FindControl
方法。
foreach (GridViewRow row in grdView.Rows)
{
// return you the check-box control from current row
var chkbox = row.FindControl("chkbox");
}
答案 3 :(得分:0)
在您的代码.cs文件中,您缺少仅检查datarow
。因为它将检查所有3个地方: -
1. Header
2. Body
3. Footer
任何一个地方都可能发生任何异常。
如果条件为after the for loop
,请再添加一个,如下所示。
if(row.RowType == DataControlRowType.DataRow) {
希望这篇文章对你有帮助:)。
答案 4 :(得分:0)
使用 细胞[I] .EditedFormatedValue