2010年4月26日 星期一

ASP.NET 手動寫CallBack

此範列是參考董大偉老師的書ASP.NET 深度剖析
當textbox輸入48時,系統會查看資料庫是否已存在
沒有的話,顯示尚未啟用

當輸入至480,資料庫已存在此編號
則顯示此編號已存在

程式碼其實很簡單
.aspx程式加上
<script type="text/ecmascript">
function ReceivedData(dat) {
document.getElementById("Label9").innerHTML = dat;
}
</script>
Label9即為畫面上的結果

public partial class apply : System.Web.UI.Page
, System.Web.UI.ICallbackEventHandler
{
String ret = String.Empty;
protected void Page_Load(object sender, EventArgs e)
{
this.TextBox1.Attributes["onkeyup"] = ClientScript.GetCallbackEventReference(this, "document.all." + this.TextBox1.ClientID + ".value", "ReceivedData", "");
//讓此textbox每輸入一個字,就到資料庫查詢字串是否存在
}
public String GetCallbackResult()
{
return ret;
}
public void RaiseCallbackEvent(String eventArgument)
{ //eventArgument為事件的值,也就是使用者在textbox上輸入的值
try
{
apply_1 check_exist = new apply_1();
String message = String.Empty;
message = check_exist.search002(eventArgument);
if (message == "已存在")
{
ret = "此編號已存在!";
}
if (message == "未存在")
{
ret = "此編號尚未使用!";
}
}
catch (Exception ex)
{
log writelog = new log();
writelog.WriteDebugLog("apply", "RaiseCallbackEvent()", ex.Message);
}
}

ps:此功能懂javascript的人能輕易的寫出,個人認為是否真需要有CallBack這東西?

沒有留言:

張貼留言