Пожалуйста, помогите с моим окончательным проектом в моем вводном / промежуточном классе программирования.
Используя хранимые процедуры, адаптеры таблиц и бизнес-классы, он хочет, чтобы мы заполнили представление сетки ASP.NET полями из таблицы «Поставщик» (у меня это работает).
Затем он хочет, чтобы мы перечислили продукты для каждого поставщика, используя хранимую процедуру, передав параметр для вывода списка продуктов на основе идентификатора поставщика.Я могу сделать это, используя объекты ASP.NET и функции визуального просмотра сетки (свойство gridview "select" для передачи параметра dataobjectsouruces).
Но он хочет, чтобы мы использовали AJAX для получения списка продуктов для каждого поставщика на основепри выборе имени поставщика из выпадающего списка.
Когда я запускаю это, я получаю предупреждение об ошибке.Я также не знаю, как написать функцию успеха AJAX для отображения потенциально нескольких строк информации о продукте (массив?)
Любая и вся помощь очень ценится, весь код ниже,
Спасибо !!
<script type="text/javascript">
$(document).ready(function () {
$("#Button1").click(function () {
var supplierid = { supplierid: $('#DropDownList1').val() };
supplierid = JSON.stringify(supplierid);
alert(supplierid);
$.ajax({
type: "POST",
dataType: "JSON",
data: supplierid,
contentType: "application/JSON",
url: "MainForm.aspx/getProductDetails",
success: function (data) {
$.each((data.d), function(index,m) {
$('#output').append('<p><strong>' + m.productid +
' ' + m.productname + ' ' + m.supplierid + ' ' + m.categoryid + ' ' + unitprice + '</strong></p>');
});
},
error: function (x, e) {
alert("The call to the Supplier failed. " + x.responseText);
}
})
});
});
</script>
MainForm.aspx:
Partial Class MainForm
Inherits System.Web.UI.Page
<WebMethod()> _
Public Shared Function getProductDetails(ByVal supplierid As Integer) As List(Of Products)
Dim prodData As New ProductData
Return prodData.getProductById(supplierid)
End Function
'ЭТА ЧАСТЬ БУДЕТ НАСЕЛЕНА В СПИСКЕ КАПЛИ ВНИЗ
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim supplierdata As New supplierdata
DropDownList1.DataSource = supplierdata.getSupplierData()
DropDownList1.DataTextField = "companyname"
DropDownList1.DataValueField = "supplierid"
DropDownList1.DataBind()
End Sub
"Продукты"и классы "productData" и бизнес-функции:
Public Class Products
Public Property productid As Integer
Public Property productname As String
Public Property supplierid As Integer
Public Property categoryid As Integer
Public Property unitprice As Integer
End Class
Public Class ProductData
Public Function getProductById(ByVal supplierid As Integer) As List(Of Products)
Dim ProductList As New List(Of Products)
Dim dt As New DataSet1.GetProductdataBySupplierDataTable
Dim productRow As DataSet1.GetProductdataBySupplierRow
// retrieves the data from the database and loads into the datatable
// closes the connection at the end.
Using ta As New DataSet1TableAdapters.GetProductdataBySupplierTableAdapter
Try
dt = ta.GetProdcutsbySupplier(supplierid)
If dt.Count = 0 Then
//no matching record found, return false
Throw New ApplicationException("Retrieve: No such record")
Else
productRow = dt(0)
Dim aProduct As New Products()
With aProduct
.productid = productRow.productid
.productname = productRow.productname
.supplierid = productRow.supplierid
.categoryid = productRow.categoryid
.unitprice = productRow.unitprice
End With
ProductList.Add(aProduct)
End If
Catch ex As Exception
Throw New ApplicationException("Error Getting Members " & ex.Message)
End Try
End Using
Return ProductList
End Function
End Class