我試圖通過使用的.asmx頁面,Ajax調用Javascript中的Web服務調用做Telerik的控制的所有服務器交互的Web服務調用後的錯誤。回發到服務器全中,頁
JavaScript的下拉OnChange事件,它完全通過獲取JSON數據並沒有問題結合好。
腳本:
<script type="text/javascript">
function getproduct_details(e) {
var product = $("#<%=cbo_productname.ClientID%>").val();
var final_product = product.replace(/\s/g, '&&');
//var cborejectrating = $find("<%= cbo_productname.ClientID%>");
//var product = cborejectrating.get_value();
var obj = {
product_name: final_product
};
if (product == "") {
$('#<%=hdnproduct_gid.ClientID%>').val("");
$('#<%=cboproductgroup.ClientID%>').val("");
$('#<%=txt_ProductCode.ClientID%>').val("");
$("[id*=cbo_productname]").val("");
$('#<%=hdnProductUOM.ClientID%>').val("");
$("[id*=txt_displayfield]").val("");
}
else {
$.ajax({
type: "POST",
url: "../ems_service/crm_service.asmx/product_details",
//data: '{product_name:"' + "'" + final_product + "'" + '"}',
data: JSON.stringify(obj),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var obj = JSON.parse(data.d)
$('#<%=hdnproduct_gid.ClientID%>').val(obj[0].product_gid);
$('#<%=cboproductgroup.ClientID%>').val(obj[0].productgroup_gid);
$('#<%=txt_ProductCode.ClientID%>').val(obj[0].product_code);
$("[id*=txt_displayfield]").val(product);
$("[id*=cboUOM]").val(obj[0].productuom_name);
$('#<%=hdnProductUOM.ClientID%>').val(obj[0].productuom_gid);
jQuery.removeData();
},
failure: function() {
alert("Server Failure");
},
error: function() {
alert("Server Error");
}
});
}
}
</script>
ASMX頁:
<WebMethod(Enablesession:=True), ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=False)> _
Public Function product_details(ByVal product_name As String)
objdbconn.OpenConn()
Dim product_value As String = Replace(Replace(product_name, "'", ""), " ", "")
msSQL = "Select distinct a.product_gid,a.product_code,a.productgroup_gid,d.productgroup_name,c.productuom_gid,c.productuom_name " & _
" from pmr_mst_tproduct a" & _
" left join pmr_mst_tproductuomclass b on a.productuomclass_gid = b.productuomclass_gid" & _
" left join pmr_mst_tproductuom c on a.productuomclass_gid= c.productuomclass_gid" & _
" left join pmr_mst_tproductgroup d on a.productgroup_gid=d.productgroup_gid" & _
" where a.product_name = '" & Replace(product_name, "&&", " ") & "' "
ds_table = objdbconn.GetDatatable(msSQL)
result = objcmn.DataTable2JSON(ds_table)
'data = "{'product_gid':'" + odjreader.Item("product_gid").ToString + "','product_code':'" + odjreader.Item("product_code").ToString + "','productgroup_gid':'" + odjreader.Item("productgroup_gid").ToString + "','productgroup_name':'" + odjreader.Item("productgroup_name").ToString + "','productuom_gid':'" + odjreader.Item("productuom_gid").ToString + "','productuom_name':'" + odjreader.Item("productuom_name").ToString + "'}"
objdbconn.CloseConn()
Return result
End Function
ASPX頁面:
<telerik:RadComboBox ID="cbo_productname" runat="server" AllowCustomText="true" DataTextField="product_name"
EnableItemCaching="true" ShowMoreResultsBox="true" EnableVirtualScrolling="true" OnChange="javascript:getproduct_details(this);"
MarkFirstMatch="true" Filter="StartsWith" DataValueField="product_gid" EmptyMessage="Select Product"
EnableLoadOnDemand="true" Width="85%" ItemsPerRequest="20" DataSourceID="ds_cboproduct"
EnableAutomaticLoadOnDemand="true" AutoPostBack="false" ZIndex="10000000" Skin="WebBlue">
</telerik:RadComboBox>
呈現的HTML:
<input id="ctl00_Content_cbo_productname_Input" class="rcbInput rcbEmptyMessage" type="text" value="Select Product" name="ctl00$Content$cbo_productname" autocomplete="off">
onchange事件觸發後,頁面的所有服務器端回發引發如下錯誤: