asp.net 关于CS后台调用前台JS的问题?

hwj383 2008-09-18 04:34:33
使用的第三方控件Rad Controls 的RadGrid(类似标准的DataGrid)
在使用RadGrid_DeleteCommand删除一行时,由于要做引用检查,如果不能删除则提示用户

private void RadGrid_DeleteCommand(object source, GridCommandEventArgs e)
{
//如果不能删
Response.Write("<script>alert('xxx');</script>");//没有用

page.RegisterStartupScript(key,脚本);//也没有用

ClientScriptManager sm = this.ClientScript;
sm.RegisterClientScriptBlock(this.GetType(), "hwj383", "alert('fdsf');",true);//也没有用

ScriptManager.RegisterStartupScript(this, this.GetType(), "hwj383", "alert('ddd')", true);//也没有用
}
但是怎么也弹不出提示框

求解,或者给一个变通的方法
...全文
472 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2008-09-20
  • 打赏
  • 举报
回复
我是真的没有办法了....
namhyuk 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 kongwei521 的回复:]
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "clientScript", "alert('验证码有误,请重新输入。!');", true);
我的怎么好用呢。
这是微软ajax里面的
[/Quote]
没看见人家说的是用了的第三方控件Rad Controls 吗?
蝶恋花雨 2008-09-19
  • 打赏
  • 举报
回复
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "clientScript", "alert('验证码有误,请重新输入。!');", true);
我的怎么好用呢。
这是微软ajax里面的
「已注销」 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zyug 的回复:]
有没有可能是事件没有注册,或是没有触发.或是冒泡到RadGrid之后,grid根本没有处理
由于是第三方控件.可能要多检查一下
先去 RadGrid_DeleteCommand看看,如果是e.Command之类的 等于 Delete
[/Quote]

我跟代码是执行了的,我想原因是这样的吧:
由于是用的第3方控件RadControls,支持ajax无刷新Grid,所以Response.Write无法输出,当然RegisterStartupScript也不能注册(或者像7楼的朋友说的没有触发),去掉ajax支持,则没有问题


zyug 2008-09-19
  • 打赏
  • 举报
回复
有没有可能是事件没有注册,或是没有触发.或是冒泡到RadGrid之后,grid根本没有处理
由于是第三方控件.可能要多检查一下
先去 RadGrid_DeleteCommand看看,如果是e.Command之类的 等于 Delete
「已注销」 2008-09-19
  • 打赏
  • 举报
回复
6,12楼,方法已试,失败
MR丶CHAN 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 hwj383 的帖子:]
使用的第三方控件Rad Controls 的RadGrid(类似标准的DataGrid)
在使用RadGrid_DeleteCommand删除一行时,由于要做引用检查,如果不能删除则提示用户

private void RadGrid_DeleteCommand(object source, GridCommandEventArgs e)
{
//如果不能删
Response.Write(" <script>alert('xxx'); </script>");//没有用

page.RegisterStartupScript(key,脚本);//也没有用

ClientScriptManager s…
[/Quote]

把这给去掉试试
「已注销」 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kongwei521 的回复:]
sm.RegisterClientScriptBlock(this.GetType(), "hwj383", "alert('fdsf');",true);//也没有用

ScriptManager.RegisterStartupScript(this, this.GetType(), "hwj383", "alert('ddd')", true);//也没有用

"alert('fdsf');"必须改成 <script>alert('fdsf'); </script>;这样的
[/Quote]
不行啊,这样是只少写两个标记而已
蝶恋花雨 2008-09-18
  • 打赏
  • 举报
回复
sm.RegisterClientScriptBlock(this.GetType(), "hwj383", "alert('fdsf');",true);//也没有用

ScriptManager.RegisterStartupScript(this, this.GetType(), "hwj383", "alert('ddd')", true);//也没有用

"alert('fdsf');"必须改成<script>alert('fdsf');</script>;这样的
「已注销」 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chinahnzl 的回复:]
要触发啊。。你注册的脚本是没有错的。。要触发才可以啊。。

临时写是不会出来的。。看看 web page 的执行流程啊。。
[/Quote]

怎么触发?
「已注销」 2008-09-18
  • 打赏
  • 举报
回复
原因找到了,是这样的,由于是用的第3方控件RadControls,支持ajax无刷新Grid,所以Response.Write无法输出,当然RegisterStartupScript也不能注册,去掉ajax支持,则没有问题,求个变通的方法

另试试6楼的方法
chinahnzl 2008-09-18
  • 打赏
  • 举报
回复
要触发啊。。你注册的脚本是没有错的。。要触发才可以啊。。

临时写是不会出来的。。看看 web page 的执行流程啊。。
caofan520 2008-09-18
  • 打赏
  • 举报
回复
外面弄个控件

label.Text = "<script>alert('ddd');</script>"
「已注销」 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hwj383 的回复:]
引用 1 楼 jackyoung02 的回复:
C# code
/// <summary>
/// 显示消息
/// </summary>
/// <param name="message">消息内容 </param>
public void ShowMessage(string message)
{
message = message.Replace("'", "").Replace("\"", "")
.Replace("{", "(").Replace("}", ")").Replace("\n", "");
string strFormat…
[/Quote]

两种方法已试,失败
期待变通方法
C5662601 2008-09-18
  • 打赏
  • 举报
回复
可能是你弹出信息里带带引号引起的
「已注销」 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jackyoung02 的回复:]
C# code
/// <summary>
/// 显示消息
/// </summary>
/// <param name="message">消息内容</param>
public void ShowMessage(string message)
{
message = message.Replace("'", "").Replace("\"", "")
.Replace("{", "(").Replace("}", ")").Replace("\n", "");
string strFormat = "<script>javascript:alert('{0}')</scr…
[/Quote]

有用吗?不过看起来和我的代码没啥区别呢?
我没有用到UpdatePanel
JeffChung 2008-09-18
  • 打赏
  • 举报
回复
控件没用过。

一般用gridview是加入一个按钮列
private void infolist_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemType!=ListItemType.Header&& .Item.ItemType!=ListItemType.Footer)
{
LinkButton deleteButton = (LinkButton) e.Item.Cells[4].Controls[0];
deleteButton.Attributes["OnClick"]="return confirm('你确认要删除吗?')";
}
}

jackyoung02 2008-09-18
  • 打赏
  • 举报
回复

/// <summary>
/// 显示消息
/// </summary>
/// <param name="message">消息内容</param>
public void ShowMessage(string message)
{
message = message.Replace("'", "").Replace("\"", "")
.Replace("{", "(").Replace("}", ")").Replace("\n", "");
string strFormat = "<script>javascript:alert('{0}')</script>";

Response.Write(String.Format(strFormat, message));
}

/// <summary>
/// 显示消息,用于使用UpdatePanel的情况
/// </summary>
/// <param name="message">消息内容</param>
public void AJAXShowMessage(string message)
{
message = message.Replace("'", "").Replace("\"", "")
.Replace("{", "(").Replace("}", ")").Replace("\n", "");
string strFormat = "alert('{0}')";
strFormat = String.Format(strFormat, message);

ScriptManager.RegisterStartupScript(this, this.GetType(), System.Guid.NewGuid().ToString("N").Substring(1, 4), strFormat, true);
}

62,047

社区成员

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

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

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

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