62,046
社区成员
发帖
与我相关
我的任务
分享
public partial class Default3 : System.Web.UI.Page , ICallbackEventHandler
{
private string result = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "scriptKey"))
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "scriptKey", "function MyCallback(content, context) {" + Page.ClientScript.GetCallbackEventReference(this, "content", "OnSuccess", "context") + "}", true);
}
#region ICallbackEventHandler 成员
public string GetCallbackResult()
{
return result;
}
public void RaiseCallbackEvent(string eventArgument)
{
string ret = string.Empty;
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ConnectionString))
{
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("insert into Table1(content) values(@content)", conn);
cmd.Parameters.Add("content", eventArgument);
conn.Open();
int affectedRows = cmd.ExecuteNonQuery();
ret = affectedRows == 1 ? "保存成功" : "保存失败";
}
result = ret;
}
#endregion
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function OnSuccess(result)
{
alert(result);
}
function Button2_onclick() {
MyCallback(document.getElementById('TextArea1').value, null);
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/WebService.asmx" />
</Services>
</asp:ScriptManager>
<div>
<textarea id="TextArea1" cols="100" rows="50"></textarea>
<input id="Button2" type="button" value="Callback Test" onclick="return Button2_onclick()" />
</div>
</form>
</body>
</html>
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
public WebService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string SaveTest(string content) {
string ret = string.Empty;
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ConnectionString))
{
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("insert into Table1(content) values(@content)", conn);
cmd.Parameters.Add("content", content);
conn.Open();
int affectedRows = cmd.ExecuteNonQuery();
ret = affectedRows == 1 ? "保存成功" : "保存失败";
}
return ret;
}
}
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function Button1_onclick() {
var content = $get('TextArea1').value;
WebService.SaveTest(content, OnSuccess);
}
function OnSuccess(result)
{
alert(result);
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/WebService.asmx" />
</Services>
</asp:ScriptManager>
<div>
<textarea id="TextArea1" cols="100" rows="50"></textarea><input id="Button1" type="button" value="Save Test" onclick="return Button1_onclick()" />
</div>
</form>
</body>
public void RaiseCallbackEvent(string eventArgument)
{
//TextBox1y就是文本字段 比如说现在有篇文章内容
string x=this.TextBox1.Text;
//但是这里TextBox1.Text是取不到值的
}
/**/
/// <summary>
/// 该方法是返回回调的结果给客户端
/// </summary>
/// <returns></returns>
public string GetCallbackResult()
{
return Result;
}