![](/img/trans.png)
[英]Bind JSON object to asp.net gridview control using javascript
[英]javascript and asp.net using json
我對asp.net和javascript發布有疑問,我知道如何從連接到數據庫的asp.net的下拉列表中獲取值,但如何將內容發送到asp.net和asp.net將該內容發回。 ..
<div id="map" style="width: 500px; height: 500px">
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:RFIDConnectionString %>"
SelectCommand="SELECT neighborhood_name FROM [Neighborhood]"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:RFIDConnectionString %>"
SelectCommand="SELECT street_name FROM [Street]"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:RFIDConnectionString %>"
SelectCommand="select * from Street,neighborhood where Street_status='high' and street.neighborhood_id=neighborhood.neighborhood_id"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource4" runat="server"
ConnectionString="<%$ ConnectionStrings:RFIDConnectionString %>"
SelectCommand="SELECT neighborhood_name FROM [Neighborhood]"></asp:SqlDataSource>
</div>
如果我正確理解您的問題,那么您所說的是將sql數據源綁定到dropdownlist控件的數據。
編輯-您的問題是如何從javascript執行asp.net回發。
對於asp.net(不是asp.net ajax),您需要調用
__doPostBack((eventTarget, eventArgument);
其中eventTarget是您要從中進行回發的控件的名稱,而eventArgument是其他信息-您可能需要根據控件應該執行的操作來填充它。
最好使用AJAX請求。 從javascript調用asp.net函數也取決於瀏覽器,IE使用ActiveXObject
而Mozilla家族使用XMLHttpRequest
,您必須編寫跨瀏覽器兼容的代碼,所以我建議您使用jquery來避免編寫跨瀏覽器兼容的代碼,但是回答您的問題,這是我用的:
發送數據到asp.net:
function CallAjax(actionUrl, postData, callbackFunc) {
xmlHttp = GetXmlHttpObject(callbackFunc);
xmlHttp.open("POST", actionUrl, true);
xmlHttp.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xmlHttp.send(postData);
}
function GetXmlHttpObject(handler) {
var objXmlHttp = null;
if (navigator.userAgent.indexOf("MSIE") >= 0) {
var strName = "Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5") >= 0) {
strName = "Microsoft.XMLHTTP";
}
try {
objXmlHttp = new ActiveXObject(strName);
objXmlHttp.onreadystatechange = handler;
return objXmlHttp;
}
catch (e) {
alert("Error. Scripting for ActiveX might be disabled");
return;
}
}
if (navigator.userAgent.indexOf("Mozilla") >= 0) {
objXmlHttp = new XMLHttpRequest();
objXmlHttp.onload = handler;
objXmlHttp.onerror = handler;
return objXmlHttp;
}
}
JS函數的用法示例:
var catCode = "001";
// GetSubcategories is the name of asp.net WebMethod present at Default.aspx page
// SubCategoryResponse is the name of JS callback function that will receive data from server
CallAjax("Default.aspx/GetSubcategories", catCode, SubCategoryResponse);
從asp.net接收數據:
function SubCategoryResponse() {
if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
var resp = xmlHttp.responseText;
}
}
Imports System.Web.Services
Imports System.Web.Script.Serialization
<WebMethod()> _
Public Shared Function GetSubcategories(ByVal catCode As String) As String
Dim json As New JavaScriptSerializer()
// Get subcategories into subcateg list
Dim subcateg As IList(Of String())
Return json.Serialize(subcateg)
End Function
在您的標記中注冊System.Web.Extensions
。
標記-Default.aspx:
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %>
您可能必須在web.config中設置正確的httpHandlers和httpModules才能成功進行AJAX請求/響應。 請參閱配置ASP.NET AJAX
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.