在WEB自定义控件中实现自动回传功能
在開發自定義的WEB控件時,有時我們想讓自定義控件實現自動回傳的功能。通常只有BUTTON這樣的控件才能實現此功能。如果想實現的話,只要讓我們的自定義控件實現IPostBackEventHandler接口就可以了,同時給控件加上事件引發的代碼調用。
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace MyWebControls
{
?/// <summary>
?/// MyCounter 的摘要說明。
?/// </summary>
?[DefaultProperty("Text"),
??ToolboxData("<{0}:MyCounter runat=server></{0}:MyCounter>")]
?public class MyCounter : System.Web.UI.WebControls.WebControl,IPostBackEventHandler
?{
//在控件中當用戶按下增加或減少時,對此數字進行操作。
??public int Number
??{
???get
???{
????if(ViewState["number"]!=null)
????{
?????return (int)ViewState["number"];
????}
????return 50;
???}
???set
???{
????ViewState["number"]=value;
???}
??}
//Page.GetPostBackEventReference(this,"inc")在客戶端生成一個腳本區(用于上傳數據的),同時再進行調用
??/// <summary>
??/// 將此控件呈現給指定的輸出參數。
??/// </summary>
??/// <param name="output"> 要寫出到的 HTML 編寫器 </param>
??protected override void Render(HtmlTextWriter output)
??{
???output.Write("當前數字為:"+Number.ToString());
???output.Write("<a href=/"javascript:"
????+Page.GetPostBackEventReference(this,"inc")
????+"/">增加</a>");
???output.Write(" ");
???output.Write("<a href=/"javascript:"
????+Page.GetPostBackEventReference(this,"dec")
????+"/">減少</a>");
??}
??#region IPostBackEventHandler 成員
//實現事件回送接口,HTML中只有BUTTON和IMAGEBUTTON能起回送的發生,如果你想
??//讓自己的控件也實現點擊后自動回送,則實現此接口
//判斷回傳時的參數。這個控件回送時有二種動作。
??public void RaisePostBackEvent(string eventArgument)
??{
???if(eventArgument=="inc")
???{
????Number=Number+1;
???}
???else
???{
????Number=Number-1;
???}
??}
??#endregion
?}
}
轉載于:https://www.cnblogs.com/greystar/archive/2005/01/06/2235553.html
總結
以上是生活随笔為你收集整理的在WEB自定义控件中实现自动回传功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 圣诞快乐!灯火点不燃圣经
- 下一篇: [新年水贴]大集合