GridView中控件丢失的焦点事件

时间:2012-11-14 20:24:05

标签: asp.net events gridview

我的GridView中有多个文本框和下拉列表。对于一个特定的文本框,我需要触发一个服务器事件,该事件从数据库中获取数据并将其填充到Grid的其他列中。有没有一种简单的方法可以做到这一点,或者像详细的here

那样稍微复杂一些

我在实现上述方法或考虑解决方法时没有问题,但后来认为在网格控件中有Cell Lost Focus会让我感到惊讶。我错过了什么吗?对此的任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您可以将AutoPostBack设置为true并处理TextChanged事件。

<asp:GridView ID="GridView1" runat="server"  EmptyDataText="It's Empty.">
    <Columns>
        <asp:TemplateField HeaderText="Name">
            <ItemTemplate>
                <asp:TextBox ID="txtName" 
                             runat="server" 
                             Text='<%#Eval("Name") %>' 
                             AutoPostBack="true"
                             OnTextChanged="NameChanged" >
                </asp:TextBox>
            </ItemTemplate>
         </asp:TemplateField>
     </Columns>
</GridView>
代码隐藏中的

protected void NameChanged(Object sender, EventArgs e)
{
    var txtName = (TextBox) sender;
    var row = (GridViewRow) txtName.NamingContainer;
    // you could find other controls in this GridViewRow via 
    // row.FindControl("ControlID") in case of a TemplateField or
    // row.Cells[0].Text (0 = index of column) in case of a BoundField
}
相关问题