我正在使用microsoft sql server 2005 &將一個下拉列表數據綁定到一個包含少量記錄的表中。在選擇的下拉列表的索引更改中,我希望我的中繼器重新綁定數據,只顯示與下拉列表中選定值具有相同ID的記錄。基於列中的值的數據綁定中繼器
這裏是我的下拉列表:
<asp:DropDownList ID="ddlViewLabel" runat="server" Width="280px"
DataSourceID="sdsLabels" DataTextField="LabelName" DataValueField="LabelID"
onselectedindexchanged="ddlViewLabel_SelectedIndexChanged">
</asp:DropDownList>
這裏是我的中繼器:
<asp:Repeater ID="rptDocuments" runat="server" OnItemCommand="viewDocument_ItemCommand"
DataSourceID="sdsDocuments">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<div class="nav-rpt">
<asp:LinkButton ID="lnkDocumentTitle" Text='<%# Bind("DocumentTitle") %>' runat="server"
CommandArgument='<%# Eval("DocumentID") %>' CssClass="nav-rpt-btn"></asp:LinkButton>
<img src="Images/ARROW.png" style="float: right" />
</div>
</ItemTemplate>
<SeparatorTemplate>
<div style="border-top-style: solid; border-top-width: 1px; border-top-color: #C0C0C0;">
</div>
</SeparatorTemplate>
<FooterTemplate>
<div style="border-top-style: solid; border-top-width: 1px; border-top-color: #C0C0C0;">
</div>
</FooterTemplate>
</asp:Repeater>
這裏是我的2個數據來源:
<asp:SqlDataSource ID="sdsDocuments" runat="server" ConnectionString="<%$ ConnectionStrings:blcDocumentationConnectionString %>"
SelectCommand="SELECT [DocumentID], [DocumentTitle], [DocumentBody], [ModifiedDate], [CreatedDate] FROM [tblDocument]">
</asp:SqlDataSource>
<asp:SqlDataSource ID="sdsLabels" runat="server" ConnectionString="<%$ ConnectionStrings:blcDocumentationConnectionString %>"
SelectCommand="SELECT [LabelID], [LabelName] FROM [tblLabel]"></asp:SqlDataSource>
<asp:SqlDataSource ID="sdsLink" runat="server"
ConnectionString="<%$ ConnectionStrings:blcDocumentationConnectionString %>"
SelectCommand="SELECT [LabelID], [DocumentID], [LinkID] FROM [tblLink]"></asp:SqlDataSource>
在哪裏輸入邏輯使用正確的「LabelID」過濾顯示「文檔」的中繼器?
你已經在tblDocuments爲外鍵labelId? –
對不起,穆罕默德,遺漏了我的問題的一部分。請看@我的變化。我有一個「鏈接」表,它將每個文檔與正確的標籤鏈接起來。 – bluetickk
如果行數不是太大,只要下拉列表發生變化,就可以使用jQuery或JavaScript顯示/隱藏行。 – Narnian