您的位置:首页 > 编程语言 > ASP

<ASP.NET>给服务器控件赋值

2012-03-22 20:50 591 查看
从我的网易博客移动。。。。。

在ListView中Itemtemplate添加了个服务器控件button。经过服务器渲染后。就很难取到该button的ID。所以在ItemDataBound中给该button绑定ID数据

btn.Attributes["MyId"]=btn.ClientID; btn.Attributes["onclick"]="check("+slid+",this);";//绑定了个onclick事件,this也是可以作为当前btn的ID使用

[/code]

前台javascript。

写了个ajax,为了在匿名函数出取到button的ID。在functioncheck(slid,src)中定义了

varmyid=$(src).attr("MyId");

[/code]

然后在post中的匿名函数发现怎么也改变不了button的状态。。

$("#"+myid).val("已签到"); $("#"+myid).attr("disabled","disabled");

[/code]
尝试了下,发现是可以取到button的值的。但是却改变不了。

$("#"+myid).val("已签到"); $("#"+myid).attr("disabled","disabled");

alert("yes");//添加这句测试发现,弹出这个后,button的状态改变了。但是页面却在进行post。post完成后,button状态恢复原来的样子。
[/code]
所以。解决button不进行post才是正道。因为是服务端控件。所以每个控件都会进行_dopostBack;

在button中添加属性UseSubmitBehavior="false";<asp:Buttonrunat="server"UseSubmitBehavior="false"ID="SignUp"Text="签到"/>



测试发现还是进行post。查看资料发现还要禁用_dopostBack;所以在javascript中的check方法最后添加

_dopostBack(myid,"");


_doPostBack带有两个参数,eventTarget是标识将要引发页面PostBack的控件ID,eventArgument参数提供了在引发页面PostBack事件时所带的额外参数。

到此。改变服务端控件就完成了。汗一个。这个小问题折腾了两三天。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: