如何編寫asp.net文本的方法失去重心的方法?請有人有任何想法寫這個,與我分享?asp.net文本框失去焦點的方法?
回答
所以我知道每個人都表現出了基本客戶端的方法,這是好的,但我想至少說明了處理服務器上的特定客戶端事件的解決方案。
讓我們來看看代碼,並逐件過目一下作品。
由於ASP.Net的TextBox不公開爲的onblur服務器端事件,你將不得不做手工。幸運的是,這很容易實現。假設你在.aspx頁面中有這麼一小段代碼。每當TextBox失去焦點時,您都想更新Label控件服務器端。
<asp:Label ID="lblOnBlur" runat="server">On Blur Example</asp:Label><br />
<asp:TextBox ID="tbOnBlur" runat="server" ClientIDMode="Static" /><br />
<asp:Label ID="lblOutput" runat="server" />
ASP.Net有一個內置的client side function被調用觸發回發,它有兩個參數:
- 目標(控制造成該事件的ID)
- 參數(可選信息你想
您可能只是wireup在標記事件通過傳遞給服務器)添加下面的屬性和價值,你的文本框:
onblur="__doPostBack('tbOnBlur','OnBlur');"
然而,框架有一個簡單的方法來生成這個腳本爲你的服務器端。在你的Page_Init方法,只需添加一個調用GetPostBackEventReference
,併爲你的控制,像這樣分配給「的onblur」屬性:
protected void Page_Init(object sender, EventArgs e)
{
var onBlurScript = Page.ClientScript.GetPostBackEventReference(tbOnBlur, "OnBlur");
tbOnBlur.Attributes.Add("onblur", onBlurScript);
}
使用標準服務器控件的事件,事件wireup和調用被自動處理的適合你實施IPostBackEventHandler
。這是一個很大的一次性解決方案的工作,所以讓剛剛通過檢查請求參數手動處理。
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
var ctrlName = Request.Params[Page.postEventSourceID];
var args = Request.Params[Page.postEventArgumentID];
HandleCustomPostbackEvent(ctrlName, args);
}
}
private void HandleCustomPostbackEvent(string ctrlName, string args)
{
//Since this will get called for every postback, we only
// want to handle a specific combination of control
// and argument.
if (ctrlName == tbOnBlur.UniqueID && args == "OnBlur")
{
lblOutput.Text = "On Blur Event Handled Server Side!" + DateTime.Now;
}
}
在它並不是非常難以模擬服務器端的事件,如果你不介意挖掘到框架有點結束。
希望這有助於!
乾杯,
喬希
if (!Page.IsPostBack)
{
txtName.Attributes.Add("onblur","alert('Hello world')");
}
如果你想在服務器文本框後做一些事情失去焦點,您可以添加的AutoPostBack =「真」,如果你不想回發重新加載整個頁面,使用一個UpdatePanel:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true"
OnTextChanged="TextBox1_TextChanged" />
</ContentTemplate>
</asp:UpdatePanel>
功能TextBox1_TextChanged可以然後做與文本(服務器端)的東西。
出於興趣 - 如何在UpdatePanel停止整個 – Kamal 2010-10-05 14:51:46
頁@Kamal的重裝......事實並非如此。更新面板不會阻止整個頁面在服務器上加載。本質上發生的是回發是使用XmlHttpRequest執行客戶端,然後除了UpdatePanel的所有內容都被丟棄並返回。它減輕了普通回發的「閃爍」,但在服務器上不會節省時間處理。 – Josh 2010-10-05 15:34:04
它重新加載整個頁面,但只發送updatepanel(s)的HTML和一些JavaScript來更新響應中的內容。響應可能比下載整個頁面小得多,並且瀏覽器不必重新渲染頁面。這可以加快這個過程,用戶不會注意到任何閃爍,並且體驗更加平滑。 – Willem 2010-10-05 18:38:25
你爲什麼不使用。引發LostFocus作品同樣具有:
OnTextChanged="TextBox_TextChanged"
- 1. 阻止WPF文本框失去焦點
- 2. 如何調用服務器端的方法失去焦點從文本框,asp.net mvc
- 3. 如何從文本框失去焦點後調用事件,asp.net mvc
- 4. 層失去焦點
- 5. UIGestureRecognizer「失去焦點」?
- 6. TextBox失去焦點
- 7. java - 失去焦點
- 8. AJAX替代物失去焦點文本框
- 9. 文本框失去焦點與jQuery自動完成選擇
- 10. C#WPF XAML自動文本框失去焦點而打字
- 11. 對話框失去焦點在Windows XP
- 12. jQuery對話框失去焦點滾動
- 13. 失去文本框的重點
- 14. Android的webview失去焦點
- 15. 失去焦點的按鈕
- 16. 的UISearchBar失去焦點
- 17. 失去焦點的頁面
- 18. 焦點asp.net文本框事件
- 19. UIAutomation c#文本框消失與鼠標單擊或失去焦點
- 20. Flex:失去組件焦點
- 21. 窗口失去焦點
- 22. 畫廊失去焦點
- 23. Javascript代碼失去焦點
- 24. UITextField失去焦點事件
- 25. 沒有失去焦點
- 26. 檢測UITextField失去焦點
- 27. 失去焦點AutoCompleteTextView問題
- 28. 捕獲EditText失去焦點
- 29. 從JTextField失去焦點
- 30. jQuery失去焦點事件
+1 Josh。這確實是非常翔實的。 – 2010-10-06 05:06:23
非常感謝您的美麗答案Genii。你的帖子對我來說非常有幫助。 – 2012-04-19 09:40:59
我已經看到了其他一些關於如何實現這一點的建議,而你的答案是迄今爲止最好的。謝謝! – Aaron 2012-05-22 17:03:04