请教关于Ajax弹出对话框的问题

gdlpc 2009-11-21 11:31:38
我在VS2005中用了AJAX的提示框控件ConfirmButtonExtender1
前台:
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1" runat="server" TargetControlID="LinkButton1" Enabled="True">
后台:
protected void Page_Load(object sender, EventArgs e)
{
ConfirmButtonExtender1.ConfirmText = "确定吗?\n123456789";
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
//如何使ConfirmButtonExtender1提示详细信息?
TextBox1.Text = "LinkButton1你单击,出现了选择提示框";
}

//这样单击LinkButton1出现提示框“确定”能执行,TextBox1得到:LinkButton1你单击,出现了选择提示框。
现在我想在单击LinkButton1时,动态改变ConfirmButtonExtender1.ConfirmText的值,使之显示要执行的详细提示,应如何设置?
后台定义一个变量,如何在单击LinkButton1时即时改变这个变量的值?
...全文
1356 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdlpc 2009-11-25
  • 打赏
  • 举报
回复
jshi123:您好,多谢了!
jshi123 2009-11-25
  • 打赏
  • 举报
回复
如果是这样,根本不需要用后台进行处理,在前台用js就可以了

<%@ Page Language="C#" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body>
<form id="form1" runat="server">

用户名:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" OnClientClick="return confirmSave()">保存</asp:LinkButton>
<script type="text/javascript">
function confirmSave() {
var username = document.getElementById("TextBox1");
if (!username.value) {
alert("请输入用户名");
return false;
}
return confirm("你确实要保存: \n" + username.value + "\n吗?");
}
</script>

<script runat="server">
void LinkButton1_Click(object sender, EventArgs e)
{
// 保存数据库
Label1.Text = TextBox1.Text + "保存成功";
}
</script>
<br /><asp:Label ID="Label1" runat="server" ForeColor="Red"></asp:Label>

</form>
</body>
</html>

jshi123 2009-11-24
  • 打赏
  • 举报
回复
缺少AjaxControlToolkit引用, 右键点“解决方案资源管理器”里的“引用”,选“添加引用”,在弹出对话框里选“浏览”,找到你安装AjaxControlToolkit目录里的"AjaxControlToolkit.dll",确定。

你的程序原来就有用到ConfirmButton啊,这个能工作吗?如果可以的话把测试页面加到你原来的项目里就可以了啊
gdlpc 2009-11-24
  • 打赏
  • 举报
回复
jshi123:您好。
你代码可以编译,一运行它就提示网页有错误,而且不能动态显示提示信息。
这样达不到要求呢,要动态显示提示信息,我再作如下描述:
TextBox1是用户名输入框,
我输入了“李三”确定保存时(即单击LinkButton1)它就提示“你确实要保存: \n李三\n吗?”
如果输入了“张四”确定保存时(即单击LinkButton1)它就提示“你确实要保存: \n张四\n吗?”
又或输入了“陈五”确定保存时(即单击LinkButton1)它就提示“你确实要保存: \n陈五\n吗?”
......
dovefay 2009-11-24
  • 打赏
  • 举报
回复
VS2005只支持AJAX control toolkit1.0

VS2008才支持2.0-3.0的。

我不太清楚,是不是1.0里面没有这个ConfirmButtonExtender?

[Quote=引用 12 楼 gdlpc 的回复:]
多谢您jshi123,我直接用你的代码编译时出现如下错误:
错误1未能加载文件或程序集“AjaxControlToolkit”或它的某一个依赖项。系统找不到指定的文件。 E:\ASP.NET测试\AJAX\1\test.aspx 2

错误2未知的服务器标记“act:ConfirmButtonExtender”。E:\ASP.NET测试\AJAX\1\test.aspx 15

错误3未知的服务器标记“act:DynamicPopulateExtender”。 E:\ASP.NET测试\AJAX\1\test.aspx 18

错误4元素“ConfirmButtonExtender”不是已知元素。原因可能是网站中存在编译错误。 E:\ASP.NET测试\AJAX\1\test.aspx 15 6 E:\...\1\

错误5元素“DynamicPopulateExtender”不是已知元素。原因可能是网站中存在编译错误。 E:\ASP.NET测试\AJAX\1\test.aspx 18 6 E:\...\1\




[/Quote]
jshi123 2009-11-23
  • 打赏
  • 举报
回复
新建一个test.aspx文件,把下面这段程序贴进去,编译后运行,打开test.aspx页面就可以看到了
<%@ Page Language="C#"  %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body>
<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
<act:ConfirmButtonExtender ID="ConfirmButtonExtender1" runat="server" TargetControlID="LinkButton1" Enabled="True" />

<asp:HiddenField ID="ConfirmText" runat="server" />
<act:DynamicPopulateExtender ID="DynamicPopulateExtender1" runat="server" TargetControlID="ConfirmText" ServiceMethod="GetConfirmText" />

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<script type="text/javascript">
var cbb = AjaxControlToolkit.ConfirmButtonBehavior.prototype;
cbb._old_onClick = cbb._onClick;
cbb._onClick = function(e) {
this.dp.populate();
e.preventDefault();
this.e = e;
return false;
}

var cb;
Sys.Application.add_load(function() {
cb = $find("ConfirmButtonExtender1");
cb.dp = $find("DynamicPopulateExtender1");
cb.dp.add_populated(function() {
cb._ConfirmTextValue = ConfirmText.value;
cb._old_onClick(cb.e);
});
cb._oldScript = LinkButton1.href;
});
</script>

<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
ConfirmButtonExtender1.ConfirmText = "确定吗?\n123456789";
}

protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
string friendName = e.CommandArgument.ToString();
TextBox1.Text = friendName;
}

[System.Web.Services.WebMethod]
public static string GetConfirmText(string contextKey)
{
return "确定吗?" + DateTime.Now + "XXXXXXXXX";
}

protected void LinkButton1_Click(object sender, EventArgs e)
{
TextBox1.Text = "LinkButton1你单击,出现了选择提示框";
}
</script>
</form>
</body>
</html>
gdlpc 2009-11-23
  • 打赏
  • 举报
回复
多谢您jshi123,我直接用你的代码编译时出现如下错误:
错误1未能加载文件或程序集“AjaxControlToolkit”或它的某一个依赖项。系统找不到指定的文件。 E:\ASP.NET测试\AJAX\1\test.aspx 2

错误2未知的服务器标记“act:ConfirmButtonExtender”。E:\ASP.NET测试\AJAX\1\test.aspx 15

错误3未知的服务器标记“act:DynamicPopulateExtender”。 E:\ASP.NET测试\AJAX\1\test.aspx 18

错误4元素“ConfirmButtonExtender”不是已知元素。原因可能是网站中存在编译错误。 E:\ASP.NET测试\AJAX\1\test.aspx 15 6 E:\...\1\

错误5元素“DynamicPopulateExtender”不是已知元素。原因可能是网站中存在编译错误。 E:\ASP.NET测试\AJAX\1\test.aspx 18 6 E:\...\1\



gdlpc 2009-11-23
  • 打赏
  • 举报
回复
不会调试
jshi123 2009-11-23
  • 打赏
  • 举报
回复
详细错误是什么
gdlpc 2009-11-23
  • 打赏
  • 举报
回复
创建控件时出错-ConfirmButtonExtender1
创建控件时出错-DynamicPopulateExtender1
gdlpc 2009-11-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 namhyuk 的回复:]
protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
            ConfirmButtonExtender1.ConfirmText = "确定吗?\n123456789";
        else
            ConfirmButtonExtender1.ConfirmText = "详细信息?";
}
[/Quote]
这样达不到要求呢,要动态显示,例如:
删除数据库中的“李三”它就提示“你确实要删除: \n李三\n吗?
删除数据库中的“张四”它就提示“你确实要删除: \n张四\n吗?
删除数据库中的“陈五”它就提示“你确实要删除: \n陈五\n吗?
......
gdlpc 2009-11-22
  • 打赏
  • 举报
回复
多谢[Quote=引用 5 楼 jshi123 的回复:]
DynamicPopulate 和 ConfirmButton 都是 AjaxControlToolkit 一套里面的东西,你有 ConfirmButton, 怎会没有 DynamicPopulate ?
[/Quote]
我的只有:DynamicPopulateExtender1,这个是不是同这个DynamicPopulate?
现在累了,明天我试试。
jshi123 2009-11-22
  • 打赏
  • 举报
回复
你可以用DynamicPopulate到后台去得到提示信息,代码看起来大概是这个样子:

前台:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
<act:ConfirmButtonExtender ID="ConfirmButtonExtender1" runat="server" TargetControlID="LinkButton1" Enabled="True" />

<asp:HiddenField ID="ConfirmText" runat="server" />
<act:DynamicPopulateExtender ID="DynamicPopulateExtender1" runat="server" TargetControlID="ConfirmText" ServiceMethod="GetConfirmText" />

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<script type="text/javascript">
var cbb = AjaxControlToolkit.ConfirmButtonBehavior.prototype;
cbb._old_onClick = cbb._onClick;
cbb._onClick = function(e) {
this.dp.populate();
e.preventDefault();
this.e = e;
return false;
}

var cb;
Sys.Application.add_load(function() {
cb = $find("ConfirmButtonExtender1");
cb.dp = $find("DynamicPopulateExtender1");
cb.dp.add_populated(function() {
cb._ConfirmTextValue = ConfirmText.value;
cb._old_onClick(cb.e);
});
cb._oldScript = LinkButton1.href;
});
</script>


后台:

protected void Page_Load(object sender, EventArgs e)
{
ConfirmButtonExtender1.ConfirmText = "确定吗?\n123456789";
}

[System.Web.Services.WebMethod]
public static string GetConfirmText(string contextKey)
{
return "确定吗?" + DateTime.Now + "XXXXXXXXX";
}

protected void LinkButton1_Click(object sender, EventArgs e)
{
TextBox1.Text = "LinkButton1你单击,出现了选择提示框";
}


这个代码有点繁琐,如果你用AjaxPro就可以简单多了。
happy664618843 2009-11-22
  • 打赏
  • 举报
回复
顶啊
jshi123 2009-11-22
  • 打赏
  • 举报
回复
DynamicPopulate 和 ConfirmButton 都是 AjaxControlToolkit 一套里面的东西,你有 ConfirmButton, 怎会没有 DynamicPopulate ?
gdlpc 2009-11-22
  • 打赏
  • 举报
回复
多谢!
我的VS2005都没有DynamicPopulate这个控件。
namhyuk 2009-11-21
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
ConfirmButtonExtender1.ConfirmText = "确定吗?\n123456789";
else
ConfirmButtonExtender1.ConfirmText = "详细信息?";
}

62,039

社区成员

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

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

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

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