我有一个用户选择产品的页面。我希望然后使用选定的ddl值填充文本框值,以允许它们在必要时更新值。我的ddl正在填充正确。
当我调试它时,文本框uxProductFamilyUpvalue似乎被分配了ddlProductFamilies.SelectedValue,但当我返回页面时,文本框为空。
有什么想法吗? TY
Imports ThomasOE.Globals
Imports ThomasOE.Utilities
Imports ThomasOE.Product
Imports System.Data
Imports System.Web.UI.WebControls
Public Class frmProducts
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
FillProductTypesDropdown()
DisplayLoginDetails(Master, Session.Item(SSNLOGINNAME), Session.Item(SSNCURRENTDATETIME))
End If
End Sub
Private Sub FillProductTypesDropdown()
Dim objProduct As New Product
Try
objProduct.FillProductTypeDS()
ddlProductTypes.Items.Clear()
ddlProductTypes.Items.Add(String.Empty)
For i As Integer = 0 To objProduct.ProductTypeDS.Tables(0).Rows.Count - 1
ddlProductTypes.Items.Add(objProduct.ProductTypeDS.Tables(0).Rows(i).Item("product_type"))
Next
objProduct = Nothing
Catch ex As Exception
End Try
End Sub
Private Sub FillProductFamiliesDropdown()
Dim objProduct As New Product
Try
objProduct.FillProductFamilyDS(ddlProductTypes.Text)
ddlProductFamilies.Items.Clear()
ddlProductFamilies.Items.Add(String.Empty)
For i As Integer = 0 To objProduct.ProductFamilyDS.Tables(0).Rows.Count - 1
ddlProductFamilies.Items.Add(objProduct.ProductFamilyDS.Tables(0).Rows(i).Item("product_family"))
Next
objProduct = Nothing
Catch ex As Exception
End Try
End Sub
Protected Sub ddlProductTypes_SelectedIndexChanged1(sender As Object, e As EventArgs) Handles ddlProductTypes.SelectedIndexChanged
FillProductFamiliesDropdown()
End Sub
Private Sub UpdateProductPage()
uxProductTypeUp.Text = ddlProductTypes.SelectedValue
uxProductFamilyUp.Text = ddlProductFamilies.SelectedItem.Text
End Sub
Protected Sub ddlProductFamilies_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProductFamilies.SelectedIndexChanged
'UpdateProductPage()
uxProductFamilyUp.Text = ddlProductFamilies.SelectedItem.Text
End Sub
End Class
答案 0 :(得分:0)
问题是由于您已经加载了该页面。 在更改DDL中的值的方法中,您可以使用jQuery调用AJAX。
在网站主标题中包含jQuery
<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
在您的DDL页面上添加类似
的内容 //DropDownList1 on change AJAX
$("#<%=DropdownList1.ClientID %>").change(function () {
GetData();
});
function GetData() {
$.ajax({
type: "POST",
//here you have to call vb.net function
url: "Default.aspx/GetDataVB",
data: '{ddl_val: "' + $("#<%=DropDownList1.ClientID%>")[0].value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: GetData_OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function GetData_OnSuccess(response) {
$("#<%=TextBox1.ClientID%>").html(response.d);
}
进入vb代码
<System.Web.Services.WebMethod()> _
Public Shared Function GetDataVB(ByVal ddl_val As String) As String
return ddl_val
end function
答案 1 :(得分:0)
您可以将OnItemSelected
事件附加到下拉列表,并在后面的代码中的事件定义中设置TextBox的文本