我有一个datagridview,其中我在模板字段中有一个文本框,就像
<asp:TemplateField>
<HeaderTemplate>Close</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtClose" runat="server" Width="90px" Text='<%# Eval("Open") %>'></asp:TextBox>
</ItemTemplate>
<ItemStyle Width="120px" HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
当我尝试使用
将整个网格值转换为字符串时for (int i = 0; i < dgv.Rows.Count; i++)
{
for (int j = 0; j < dgv.Rows[i].Cells.Count; j++)
{
str = str + "," + Convert.ToString(dgv.Rows[i].Cells[j].Text);
}
str = str + "|";
}
模板字段值将显示为空字符串
任何想法如何检索它们?
答案 0 :(得分:1)
你在单元格中有asp.net服务器控件,你必须先找到它们才能获得它们的值。您可以使用Control.FindControl来呼叫Row
或Cell
对象,以获取其中的textBox
。
for (int i = 0; i < dgv.Rows.Count; i++)
{
TextBox txtClose = (TextBox)dgv.Rows[i].FindControl("txtClose");
str = str + "," + Convert.ToString(txtClose.Text);
//Find and add more template fields here.
str = str + "|";
}