AutoPostBack与jQuery冲突
我想做this但在asp.net中。我怎么会在asp.net /后面的代码中写这个?我已经有AutoPostBack与jQuery冲突
protected void chkBox_CheckedChanged(object sender, EventArgs e)
{
if (chkBox.Checked){}
else{}
}
与
<asp:Checkbox ID="chkBox" AutoPostBack="True" runat="server"
onCheckedChanged="chkBox_CheckedChanged" />
,所以我需要在剩下的帮助填充。尽管如此,非常感谢!
更新2: 此方法的工作原理,但消息/ div不显示足够长的时间来阅读文本。发现这是由于AutoPostBack="true"
。如何在AutoPostBack完成后调用事件(我猜这就是我需要解决的问题)?
function displayDiv(checkbox) {
if (checkbox.checked) {
$("#message1").stop(true, true).show().fadeOut(10000);
$("#message2").hide();
}
else {
$("#message1").stop(true, true).hide();
$("#message2").stop(true, true).show().fadeOut(10000);
}
}
<asp:CheckBox ID="chkNotifyMe" AutoPostBack="True" runat="server" OnCheckedChanged="chkNotifyMe_CheckedChanged" onclick="displayDiv(this)" />
<div id="message1" class="message" ><span>Successfully <small></small></span></div><br />
<div id="message2" class="message" ><span>Removed<small></small></span></div>
(所有的CSS是一样的)
如此接近我可以尝尝吧:再d谢谢!
最终解决 好吧,我已将此添加到我的网页通过jQuery和它的帖子后致电的AutoPostBack,以显示我的消息
function pageLoad() {
<%# autoLaunchJS %>
$("#chkNotifyMe").click(chkNotifyMe_clicked);
}
function chkNotifyMe_clicked(){
var add = $get("chkNotifyMe").checked == true;
PageMethods.WishList(add, <%#ID%>, OnSucceeded, OnFailed);
}
function OnSucceeded(){
refreshStartPage();
if($get("chkNotifyMe").checked){
$("#messageSuccess").stop(true, true).show().fadeOut(5000);
$("#messageRemove").hide();
}
else{
$("#messageSuccess").stop(true, true).hide();
$("#messageRemove").stop(true, true).show().fadeOut(5000);
}
}
您可以同时为客户端代码和服务器逻辑进行服务器控制。如果该div的显示是你打算做的所有事情,那么它就是纯粹的视图逻辑,并且它绝对是与javascript相关的,并回传给服务器并刷新视图将是浪费。
可以稍微改变你的JavaScript来做到这一点
function displayDiv(checkBox) {
if (checkBox.checked) {
$("#message1").stop(true,true).show().fadeOut(4000);
$("#message2").hide();
}
else {
$("#message1").stop(true,true).hide();
$("#message2").stop(true,true).show().fadeOut(4000);
}
}
和
<asp:Checkbox ID="chkBox" AutoPostBack="True" runat="server"
onCheckedChanged="chkBox_CheckedChanged" onclick="displayDiv(this)" />
请看我的编辑最高 – ComatoseDuck 2011-05-05 21:15:31
@ComatoseDuck的想法是这样的http://jsfiddle.net/TYbzN/ – 2011-05-06 12:31:27
@ComatoesDuck在你的第二种方法,你有一切权利,但一件事。 'onclick =“displayDiv(checked)”'应该是'onclick =“displayDiv(this)”'。 – 2011-05-06 12:51:54
创建与CSS
<asp:Label id="lblChkchnged" runat="server" CssClass="message" Visible="False" />
标签
然后在您的支票更改事件中设置代码
lblChkchnged.visible = true;
lblChkchnged.text = chkBoc.Checked ? "Checked" : "Unchecked";
虽然真的,为什么不把它作为一个客户端的电话,除非你需要做的比这更多?
我很想把它作为一个客户电话,我试过了,但它没有工作 – ComatoseDuck 2011-05-05 14:02:12
什么没有工作? – Chad 2011-05-05 15:56:17
我结束了周围几个div改变来解决我的AutoPostBack问题 – ComatoseDuck 2011-05-16 22:20:45