2014-07-07 60 views
0

如何從文本框中鍵入第6位數字後面的代碼觸發事件/函數?當我在文本框中鍵入第6位數字時,如何從代碼後面觸發事件/函數?

我的問題是非常簡單的 我是一個C#程序員 如何從一個代碼後面的代碼觸發事件/功能當我在文本框中輸入第6位數?

+1

你的問題很簡單,但解決的辦法是少一些。你試過什麼了 ?你知道如何在jQuery中激發Ajax請求嗎? – sh1rts

+0

沒有仁慈的幫助實際我有一個pincode文本框作爲pin碼是6位數,所以當用戶輸入pin碼的第6位時,我想發起一個事件,這個事件會從代碼後面填充它的corrosponding區域。由於我想使用代碼後面的代碼,所以我不能使用JavaScript來做到這一點。任何可能的解 –

回答

0

連接兩個事件的TextBox 1)投票的onchange 2)C#OnTextChanged

檢查驗證在平變化字符,如果真那麼 「返回true;」 這將在服務器端觸發OnTextChanged事件。

也不要忘記把文本框的「AutoPostBack」屬性設置爲true。

+0

這個解決方案在我看來是第二選擇。如果可以提供任何其他或直接的解決方案? –

+0

不要直接在change.use ontext上使用。以上解決方案將節省您不必要的回傳 –

+0

hey感謝您的幫助。 但我曾在你的代碼上面的問題是,在進入第6位沒有被解僱,我需要要麼保持焦點移出文本框或回車鍵 但我只要我按進入第6位希望事件背後的代碼將被解僱 –

1

從問題的評論中閱讀您的要求後,我建議您使用Web服務或Page方法來解決當前問題。

您的問題可以通過以下方式解決:

  1. 使用jQuery在您的項目。
  2. 爲您的文本框寫一個javascript「onchange」函數。
  3. 計算此javascript函數中文本框中文本的長度。
  4. 當長度等於「6」時,通過jQuery發出一個web服務請求。
  5. 網絡服務將返回您需要在JavaScript中捕獲的數據。
  6. 顯示數據。

甲示例代碼如下:

Javascript函數用於計算長度:

 function caculateTextboxLenth() { 
      if (document.getElementById("<Textbox Id>").length == 6) { 
       var text = document.getElementById("<Textbox Id>").text; 
       CallWebService("/getDistrictData",text); 
      } 
      return false; 
     } 

Javascript函數調用網頁方法:

function CallWebService(WebServiceURL,text) { 
    $.ajax({ 
     type: "POST", 
     cache: false, 
     url: WebServiceURL + "&pincode=" text + "&dt=" + new Date().getTime(), //This will append ?dt={timestamp} to the URL to prevent caching, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: ShowData, 
     error: error 
    }); 
} 

你的C#頁方法應像你的代碼背後的文件。

[System.Web.Services.WebMethod] 
    public static string getDistrict() 
    { 
     int pincode = Convert.ToInt32(HttpContext.Current.Request.QueryString["pincode"].ToString().Trim()); 
     string district = ""; 
     //code to fetch district 
     return district; 
    } 

P.S:檢查SQL注入。

+0

我不能調用webservice的,我只是想打電話給一個代碼隱藏方法 我可以調用後面方法的代碼通過JavaScript?\ –

+1

他給出的例子是一個頁面方法,其中*是*在頁面代碼的背後,雖然作爲靜態所以它不能訪問頁面實例本身的任何控件。這是一個很好的解決方案。 – sh1rts

+0

我不想使用webservice! 親愛sh1rts,你是絕對正確的ontextchange火災只有當我們離開的焦點,但我需要背後火碼的第6位輸入。這可以是隻有當能夠從onchange上觸發的javascript調用sserver side方法時。有沒有可能從JavaScript調用服務器端方法? –

0

我的解決方案可能不是完美的,但把你的texboxUpdatePanel雙擊它來創建一個事件,現在使用int.Parse看出,如果輸入的輸入是整數或不和使用txtbx.Text.Length看到,如果你得到了第六位數字或不。

它應該是這樣的

if(txtbx.Text.Trim().Length > 0 && int.Parse(txtbx.Text.Trim(), out intoutput)) 
{ 
    if(txtbx.Text.Trim().Length = 6) 
    { 
    // your code here 
    } 
} 
相關問題