关闭

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

标签: 服务器asp.netbuttonpostbackjavascriptlistview
1657人阅读 评论(0) 收藏 举报
分类:

从我的网易博客移动。。。。。


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

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



前台javascript。

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

 var myid = $(src).attr("MyId");



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

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


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

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


alert("yes");//添加这句测试发现,弹出这个后,button的状态改变了。但是页面却在进行post。post完成后,button状态恢复原来的样子。

所以。解决button不进行post才是正道。因为是服务端控件。所以每个控件都会进行_dopostBack;
在button中添加属性UseSubmitBehavior="false";

 <asp:Button  runat="server" UseSubmitBehavior="false" ID="SignUp" Text = "签到"/>

 

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

 

_dopostBack(myid,"");


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

到此。改变服务端控件就完成了。汗一个。这个小问题折腾了两三天。。。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:277185次
    • 积分:2997
    • 等级:
    • 排名:第11749名
    • 原创:62篇
    • 转载:6篇
    • 译文:0篇
    • 评论:136条
    我的其他博客
    最新评论