2011-08-18 54 views
0

我正在使用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」過濾顯示「文檔」的中繼器?

+0

你已經在tblDocuments爲外鍵labelId? –

+0

對不起,穆罕默德,遺漏了我的問題的一部分。請看@我的變化。我有一個「鏈接」表,它將每個文檔與正確的標籤鏈接起來。 – bluetickk

+0

如果行數不是太大,只要下拉列表發生變化,就可以使用jQuery或JavaScript顯示/隱藏行。 – Narnian

回答

0

你需要編寫一些代碼爲你定義ddlViewLabel_SelectedIndexChanged方法在下拉列表

protected void ddlViewLabel_SelectedIndexChanged(object sender, EventArgs e) 
{ 
DropDownList d = (DropDownList)sender; 

// psudeo code from here on out 
// get the DropDownList selected index 
// create the new SQL statement 
// either create a new SQlDataSource or SqlCommand/SqlConnection objects, set the sql, attach them to the repeater, bind 

} 
+0

我如何將它們附加到中繼器? – bluetickk

+0

repeater.DataSource =​​ – Wil