2009-02-02 4 views
0

Мне бы хотелось высказать предположение о том, как записать запись в свой DataList, чтобы дать опцию «Все». Вот мой код, данные из базы данных Northwind.Вводная запись в DataList

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" 
     RepeatLayout="Flow" ShowFooter="False" ShowHeader="False" 
     RepeatDirection="Horizontal" 
     onitemcommand="DataList1_ItemCommand"> 
     <ItemStyle CssClass="datalist" /> 
    <ItemTemplate> 
     <%#(((DataListItem)Container).ItemIndex+1).ToString() %> 
     <asp:LinkButton ID="lbtnRegion" runat="server" 
      Text='<%# Eval("RegionDescription").ToString().Trim() %>' 
     CommandName='<%# DataBinder.Eval(Container.DataItem,"RegionID")%>' />      
    </ItemTemplate>  
    </asp:DataList> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" 
    SelectCommand="SELECT [RegionID], [RegionDescription] FROM [Region]" 
     ondatabinding="SqlDataSource1_Databinding" 
    onselected="SqlDataSource1_Selected"> 
</asp:SqlDataSource> 

Я использую кнопку Link в DataList для фильтрации территорий и отображать их в GridView. Что бы я хотел сделать в некоторых процессах привязки данных, добавьте элемент в DataList, который будет действовать как опция ALL, любые предложения будут оценены.

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) 
{ 
    LinkButton lbtn; 

    foreach (DataListItem dli in DataList1.Items) 
    { 
     lbtn = (LinkButton)dli.FindControl("lbtnRegion"); 
     if (lbtn != null) 
      lbtn.ForeColor = System.Drawing.Color.White; 
    } 
    string command = e.CommandName; 
    lbtn = (LinkButton)e.Item.FindControl("lbtnRegion"); 
    if (lbtn != null) 
     lbtn.ForeColor = System.Drawing.Color.YellowGreen; 

    DataView dv = GetData(ref command); // Pass the RegionId 
    gvTerritory.DataSource = dv; 
    gvTerritory.DataBind(); 
} 

Благодаря

ответ

0

Один из способов заключается в UNION ALL а «Все» значение запроса Fetching списка выпадающего пунктов.

SELECT 'All', 'All Regions' 
UNION ALL 
SELECT [RegionID], [RegionDescription] FROM [Region] 

Но если у вас есть много списков (или выпадающие), как это, лучше практика, чтобы создать пользовательский элемент управления, который вводит в «All» запись для вас.

+0

большое предложение, спасибо. – Picflight

0

Он работал со следующим SQL:

SELECT '-1' AS 'RegionID', 'All Regions' AS 'RegionDescription' 
UNION ALL SELECT [RegionID], [RegionDescription] FROM [Region] 
0

Используется это на падение вниз, может работать так же на DataList

Protected Sub ddlDataSources_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlDataSources.DataBound 
    ddlDataSources.Items.Insert(0, New ListItem("All Data Sources", 0)) 
    End Sub 
Смежные вопросы