2014-02-07 65 views
1

在我的項目中,我使用的是updatepanel內的Textbox來顯示數據庫表中不存在的收據編號。 但是在輸入時文本框上的textchanged事件不會觸發。我的邏輯是在打字時顯示可用的收據。如果沒有顯示,則用戶可以插入該收據號碼。如何在文本框中輸入時觸發文本框textchanged事件

<asp:UpdatePanel ID="updAvailableReceipt" runat="server"> 
    <ContentTemplate> 
     <asp:TextBox ID="txtReceiptNo" runat="server" class="textBoxStyle" AutoPostBack="true" OnTextChanged="txtReceiptNo_TextChanged"></asp:TextBox> 
     <asp:GridView ID="grdShowAvailableReceipt" runat="server" EnableTheming="True" ShowHeader="False"> 
     </asp:GridView> 

    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="txtReceiptNo" EventName="TextChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 


protected void txtReceiptNo_TextChanged(object sender, EventArgs e) 
{ 
    param = ParameterClass.IniliazeParameter(1); 
    int count=0; 
    ParameterClass.AddParameter(ref param, "@ReceiptNumber", txtReceiptNo.Text, ref count); 
    grdShowAvailableReceipt.DataSource = new bAuctionPayment().Fetch(RecordFetchMode.FethcAvailableReceipt, param); 
    grdShowAvailableReceipt.DataBind(); 

} 
+0

難道是因爲它僅僅是慢?就像嘗試打字並等待一段時間。你在調試器中得到什麼? – DhruvJoshi

+0

可以使用keydown事件 [這個力量可以幫助你] [1] [1]:http://stackoverflow.com/questions/12560418/what-is-the-alternate-事件的文本框keydown的winform在webform在c - 銳 – vikas

回答

0

使用此,它的做工精細

JAVASCRIPT

function ChangeText() { 
      var t1 = document.getElementById('<%= txtArticleTitle.ClientID %>'); 
      var t2 = document.getElementById('<%= txtPageName.ClientID %>'); 

      t2.value = t1.value; 
     } 

ASP.NET SOURCE

Article Title: 
<asp:TextBox ID="txtArticleTitle" runat="server" onkeyup="ChangeText()" Width="600px"></asp:TextBox> 
<br /> 
Page Name: 
<asp:TextBox ID="txtPageName" runat="server" Width="600px"></asp:TextBox> 
+0

感謝您的回覆。但我想調用textchage事件,並將從db中獲取記錄。所以我需要對textchange進行部分回發?我可以從這個JavaScript調用部分回發 – jeevacl

0

兩個音符。

  1. 當文本框丟失焦點時,Textchanged會觸發。您可以使用keyd自己的或按鍵事件。

  2. 不建議每次用戶按下某個鍵時調用服務器。考慮使用超時,以便僅在用戶完成打字時(我認爲標準爲350毫秒)才調用服務器,或者從服務器預加載列表並過濾客戶端。

P.S.

不要使用ASP.Net ajax ...只是說。

0

您可以在serverside中創建一個過程並使用javascript執行它。 以下使用的邏輯很簡單,創建一個過程,添加一個按鈕並將可見性設置爲false或顯示:沒有使用css。 然後點擊該按鈕觸發該過程,並從javascript觸發點擊事件。 隨意問如果遇到任何問題

VB代碼

Public Sub FetchRecord() 

    'Your Code Here.. 

    End Sub 

Protected Sub btnView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnView.Click 
     FetchRecord() 
End Sub 

的Javascript

<script type="text/javascript"> 
     function Filter() { 
      document.getElementById('<%= btnView.ClientID %>').click() 
     } 
</script> 

相關問題