这是我实现的,对于更多代码,如何将文本框的文本发送到服务器以存储在变量或数据库中而不回发?
可以使用Ajax和update plane来完成,但我想使用JavaScript脚本来实现它。
<div id="CommentID" style=" width:30%; height:30%">
<asp:Button ID="Button1" runat="server"
Text="Comment"
OnClientClick="visibleDiv('id1'); return false;" />
<div id="id1" runat="server" style="visibility: hidden; background-color:Green; width:100%; height:100%">
<asp:TextBox ID="TextBox1" runat="server"
AutoCompleteType="Disabled" Rows="3"
TextMode="MultiLine" Width="98%">
</asp:TextBox>
<asp:Button ID="Button2" runat="server"
Text="Post"
onclick="Button2_Click" />
<asp:Button ID="Button3" runat="server"
Text="Cancel"
OnClientClick="visibleDiv('id1'); return false;" />
</div>
</div>
答案 0 :(得分:1)
跳过jQuery,只需添加使用PageMethod
这将在javascript中公开一个静态服务器端方法,并促进所有Ajax的东西
将此添加到
后面的代码中[System.Web.Services.WebMethod]
public static string SendString( string text ) {
// store the string in the database
return text;
}
在标记中添加一个scriptmanager
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
...
现在你可以使用
从javascript调用SendString PageMethods.SendString("mystring", function(text){
alert("wooot! " + text);
});
另请注意,您可以使用强类型参数并返回值 ASP.NET AJAX将自动在javascript中创建客户端类以模拟服务器端类,并将自动序列化和反序列化它们:)
答案 1 :(得分:0)
我建议你使用jQuery:
<asp:Button ID="Button1" runat="server"
Text="Comment"
OnClientClick="$.post("you_url", {text: $("#TextBox1").val()});"/>
有关详细信息,请参阅http://api.jquery.com/jQuery.post/。