asp.net中AJAX评分Rating控件中添加提示框

zhenshanghai 2009-11-02 09:34:19
要求实现的效果:用AJAX 中星星的评分控件,点击评分后,弹出confirm提示框,确定则记录到数据库里,取消则不执行操作。
我的代码:<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<cc1:Rating ID="Rating1" runat="server" Enabled="true" CurrentRating="0"
MaxRating="10" CssClass="cssRatingStar" StarCssClass="ratingItem"
WaitingStarCssClass="Saved" FilledStarCssClass="Filled" EmptyStarCssClass="Empty"
AutoPostBack="true" onchanged="Rating1_Changed" Onclick="return confirm('你的评分为分!点击确定提交评分,点击取消重新评分');">
</cc1:Rating></ContentTemplate></asp:UpdatePanel>
//----------后台---------------
protected void Rating1_Changed(object sender, AjaxControlToolkit.RatingEventArgs e)
{

this.Rating1.ReadOnly = true;
}

我也试过用this.Rating1.Attributes.Add("onclick", "confirm('你的评分为分!点击确定提交评分,点击取消重新评分')");
试了N多方法,但只是能弹出提示框,无论点击确定还是取消,后台代码都是执行了。
么样做可以实现点击确定执行后台代码取消不执行呢


...全文
730 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuperMan_Yong 2012-09-12
  • 打赏
  • 举报
回复
如何更改 Rating 控件大小呢?
PeterPhospherus 2011-02-18
  • 打赏
  • 举报
回复
楼主,我和你一样的问题啊。你是怎么解决的啊??交流一下啊。。QQ:572492943
zhenshanghai 2009-11-03
  • 打赏
  • 举报
回复
虽然一楼的方法存在问题,但是把分给你,问题我也解决了,你的方法存在的问题在于 changed里面的事件会一起执行过去,也就是说在他把IF语句执行完后才会弹出提示框,然后才能给隐藏域赋值,
zhenshanghai 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
在Rating1_Changed里
ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "", "if(Conform('')) document.getElemnyById('hf').value='1'; else document.getElemnyById('hf').value='0'; ", true);
if(hf.Value.Equals("1"))
{
}
[/Quote]

调试的以后发现一个问题
ScriptManager.RegisterStartupScript(this.UpdatePanel3, this.GetType(), "window", " if (confirm('你的评分为" + e.Value + "分!点击确定提交评分,点击取消重新评分')){document.getElementById('" + HiddenGrade.ClientID + "').value = '1';}else { document.getElementById('" + HiddenGrade.ClientID + "').value = '0';}", true);
if (this.HiddenGrade.Value.Equals("1"))
{
this.Rating1.ReadOnly = true;
}

这段代码并不是等弹出对话框点击后才执行if里面的语句,而是一起执行了后才弹出对话框的
zhenshanghai 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
在Rating1_Changed里
ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "", "if(Conform('')) document.getElemnyById('hf').value='1'; else document.getElemnyById('hf').value='0'; ", true);
if(hf.Value.Equals("1"))
{
}
[/Quote]

的确是个不错的注意,先谢谢了 ,但我做的还会出个错。我用了个隐藏域存值
<input id="HiddenGrade" type="hidden" runat="server" value="" />

ScriptManager.RegisterStartupScript(this.UpdatePanel3, this.GetType(), "window", "if(confirm('确定打分吗?)) document.getElemnyById('"+HiddenGrade.ClientID+"').value='1'; else document.getElemnyById(' "+HiddenGrade.ClientID+"').value='0'; ", true);

if (this.HiddenGrade.Value.Equals("1"))
{
this.Rating1.ReadOnly = true;
}
脚本会出错,错误:对象不支持此属性。
麻烦了!
happy664618843 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
在Rating1_Changed里
ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "", "if(Conform('')) document.getElemnyById('hf').value='1'; else document.getElemnyById('hf').value='0'; ", true);
if(hf.Value.Equals("1"))
{
}
[/Quote]
对这个方法不错 友情帮顶
wuyq11 2009-11-02
  • 打赏
  • 举报
回复
在Rating1_Changed里
ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "", "if(Conform('')) document.getElemnyById('hf').value='1'; else document.getElemnyById('hf').value='0'; ", true);
if(hf.Value.Equals("1"))
{
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧