ASP.NET 里怎么实现无刷新提交数据
初学者求一个例子,越详细越好。求大神 asp.net Ajax
[解决办法]
ajax 或者 updatepanel
[解决办法]
如果只是提交的话,研究一下jquery的$.ajax,很简单的。
[解决办法]
控件列表里拖个scriptmanager,在拖个updatepanel,在panel里放你想异步提交的东西,放个button啥的,写上提交代码,好了
[解决办法]
$("#<%= ddlProvince.ClientID %>").change(function () {
var parent = $(this).val();
$.ajax({
url: 'GetRegionList.ashx?Parent=' + parent + '&Type=1',
type: "get",
success: function (str) {
$("#<%= ddlCity.ClientID %>").empty();
var names = eval(str);
for (var i = 0; i < names.length; i++) {
$("#<%= ddlCity.ClientID %>").append($("<option value='" + names[i].ID + "'>" + names[i].Name + "</option>"));
}
}
});
});
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string strParent = context.Request.QueryString["Parent"].ToString();
string strType = context.Request.QueryString["Type"].ToString();
DataTable dtNames = DbHelper.GetRegionNames(strParent, strType);
context.Response.Write(TransformJson(dtNames));
context.Response.End();
}
private string TransformJson(DataTable dtNames)
{
StringBuilder Json = new StringBuilder();
Json.Append("[");
int Count = dtNames.Rows.Count;
for (int i = 0; i < Count;i++ )
{
Json.Append("{ Name:'");
Json.Append(dtNames.Rows[i]["name"].ToString());
Json.Append("',ID:");
Json.Append(dtNames.Rows[i]["id"].ToString());
Json.Append("}");
if (i < Count - 1)
Json.Append(",");
}
Json.Append("]");
string str = Json.ToString();
return Json.ToString();
}
[解决办法]
<form id="form1" runat="server" enctype="multipart/form-data" onsubmit="javascript:return checkForm(this)">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:HiddenField ID="Hidden1" runat="server" />
<asp:HiddenField ID="Hidden2" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnAdd" />
<asp:PostBackTrigger ControlID="btnUpdate" />
</Triggers>
<ContentTemplate>
<fieldset>
<legend>信息</legend>
<br />
这里放asp.net控件
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<div style="position: fixed; left: 40%; top: 40%;">
<table style="height: 60px; width: 260px; vertical-align: middle; background-color: Transparent"
border="0px" cellpadding="0px" cellspacing="0px">
<tr>
<td align="center">
<asp:Image ID="Image1" runat="server" ImageUrl="~/images/loading.gif" />
</td>
</tr>
<tr>
<td align="center">
系统处理中,请稍后...
</td>
</tr>
</table>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</div>
</form>
[解决办法]
人家都说了不用updatepanel,可以直接用用js写一个方法,这个方法就是用来绑定数据的(ajax+json就可以绑定),然后更新了之后直接调用这个方法就可以做到无刷新了啊