【问题标题】:Bind Focus Out event on GridView dynamic asp:TextBox using Update Pannel使用更新面板在 GridView 动态 asp:TextBox 上绑定 Focus Out 事件
【发布时间】:2017-05-28 06:06:21
【问题描述】:

我在更新面板中有一个网格视图,该网格有一列包含 asp:textbox。我想绑定并触发 asyncAutoPostBackTrigger 焦点在动态生成的文本框中。我有以下代码

<asp:scriptmanager id="ScriptManager2" runat="server"></asp:scriptmanager>
<asp:updatepanel id="UpdatePanel2" runat="server">
    <ContentTemplate>
        <asp:GridView ID="GridView1" CssClass="table table-customized table-layout-fixed col-sm-offset-2" runat="server" AutoGenerateColumns="False" OnRowDataBound="gvLicense_RowDataBound">
            <Columns>
                <asp:TemplateField ControlStyle-CssClass="word-wrap-break" HeaderText="">
                    <ItemTemplate>
                        <label class="col-sm-2 control-label" runat="server">Title</label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ControlStyle-CssClass="word-wrap-break" HeaderText="Title">
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" placeholder="Title" Text='<%# Bind("vCertType") %>' OnTextChanged="Code_TextChanged"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ControlStyle-CssClass="word-wrap-break" HeaderText="Add">
                    <ItemTemplate>
                        <button type="button" id="btnAddLicense" runat="server" class="btn btn-success-o">+</button>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="<%=Bind(txtLicense.ClientID) %>"   EventName="" />
</Triggers>

问题分解

  • 在 javascript 中将焦点绑定事件
  • 转到后面的代码获取值并保存到 DB

【问题讨论】:

    标签: c# asp.net gridview webforms updatepanel


    【解决方案1】:

    您可以删除&lt;Triggers&gt; 节点,并将AutoPostBack="true" 添加到TextBox。

    <asp:TextBox ID="TextBox1" runat="server" placeholder="Title" Text='<%# Bind("vCertType") %>' OnTextChanged="Code_TextChanged" AutoPostBack="true"></asp:TextBox>
    

    然后在后面的代码中,您可以将发件人转换回 TextBox 并获取它的值。

    protected void Code_TextChanged(object sender, EventArgs e)
    {
        TextBox tb = sender as TextBox;
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "alertMe", "alert('" + tb.Text + "')", true);
    
        //save to database
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多