我在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时即时改变这个变量的值?
前台:
<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时即时改变这个变量的值?
{
if (!IsPostBack)
ConfirmButtonExtender1.ConfirmText = "确定吗?\n123456789";
else
ConfirmButtonExtender1.ConfirmText = "详细信息?";
}
删除数据库中的“李三”它就提示“你确实要删除: \n李三\n吗?
删除数据库中的“张四”它就提示“你确实要删除: \n张四\n吗?
删除数据库中的“陈五”它就提示“你确实要删除: \n陈五\n吗?
......
</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就可以简单多了。
我的VS2005都没有DynamicPopulate这个控件。
现在累了,明天我试试。
<%@ 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>
创建控件时出错-DynamicPopulateExtender1
错误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\
你代码可以编译,一运行它就提示网页有错误,而且不能动态显示提示信息。
这样达不到要求呢,要动态显示提示信息,我再作如下描述:
TextBox1是用户名输入框,
我输入了“李三”确定保存时(即单击LinkButton1)它就提示“你确实要保存: \n李三\n吗?”
如果输入了“张四”确定保存时(即单击LinkButton1)它就提示“你确实要保存: \n张四\n吗?”
又或输入了“陈五”确定保存时(即单击LinkButton1)它就提示“你确实要保存: \n陈五\n吗?”
......
<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>