我在网格视图中有页脚行来添加新记录。在页脚中我有三列(名称,电话号码和地址。当用户输入电话号码时,需要提取相应的详细信息并将其绑定到页脚行中的其他项目
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
ShowFooter="true" onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtName" runat="server" ></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Phone">
<ItemTemplate>
<asp:Label ID="lblPhone" runat="server" Text='<%# Eval("Phone") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtPhone" runat="server" ></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:0)
你可以尝试这样的事情......
ASP:
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtName" runat="server" autopostback="true" OnTextChanged="txtName_TextChanged"></asp:TextBox> //added code here
</FooterTemplate>
</asp:TemplateField>
C#代码背后
protected void txtName_TextChanged(object sender, EventArgs e)
{
//code here call back fields to other textboxes
}
这还没有经过测试但我之前使用过onTextChanged ..也许不是在网格中......你可能需要使用..
Textbox txtPhone = GridView1.FooterRow.FindControl("txtPhone");
在页脚中找到控件。找到控件后,您应该能够使用sqldataadapter或datareader填充文本框。
HOpe这会让你朝着正确的方向前进!