2017-01-12 37 views
0

我在更新面板中有一個網格視圖,網格有一列包含asp:textbox。我想在動態生成的文本框中綁定並觸發asyncAutoPostBackTrigger。我有以下代碼在GridView動態asp:TextBox上使用更新面板綁定Focus Out事件

<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
  • 轉到後面的代碼獲得的價值,並保存到數據庫

回答

0

您可以刪除<Triggers>節點,並添加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 
}