Я начинающий разработчик.Я создаю страницу + пользовательский элемент управления.Страница aspx содержит выпадающий список, который заполняется источником данных sql, который находится на странице aspx.Страница ascx содержит представление таблицы, заполненное другим источником данных sql, который находится на странице ascx.
В раскрывающемся списке aspx есть список стран, а в таблице сетки (на ascx) должны отображаться данные в зависимости от выбранной страны.
Моя страница ascx выглядит следующим образом.
Partial Class UCtest
Inherits System.Web.UI.UserControl
Private priCountry As String
Public Property PublicCountry() As String
Get
Return priCountry
End Get
Set(ByVal value As String)
priCountry = value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
SqlDataSource1.SelectParameters.Add("Country", priCountry)
End Sub
End Class
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="UCtest.ascx.vb" Inherits="UCtest" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display.">
<Columns>
<asp:BoundField DataField="CompanyName" HeaderText="CompanyName"
SortExpression="CompanyName" />
<asp:BoundField DataField="Country" HeaderText="Country"
SortExpression="Country" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT [CompanyName], [Country] FROM [Customers] WHERE ([Country] = ?)">
<SelectParameters>
</SelectParameters>
</asp:SqlDataSource>
Моя страница aspx
<%@ Register src="UCtest.ascx" tagname="UCtest" tagprefix="uc1" %>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
DataSourceID="SqlDataSource1" DataTextField="Country" DataValueField="Country">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT DISTINCT [Country] FROM [Customers]"></asp:SqlDataSource>
<uc1:UCtest ID="UCtest1" runat="server" />
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
UCtest1.PublicCountry = DropDownList1.SelectedValue
End Sub
Это прекрасно работает, если я просто передаю статические значения, такие как
<uc1:UCtest ID="UCtest1" runat="server" PublicCountry="Mexico"/>
Так что я думаю, что правильно связал пользовательский контрольНо когда я запускаю страницу, я получаю только пустую страницу, что означает, что ascx не получает данные из aspx.что мне не хватает?