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

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


在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值