首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将记录注入DataList

将记录注入DataList
EN

Stack Overflow用户
提问于 2009-02-02 23:08:06
回答 3查看 359关注 0票数 0

我想建议如何在我的DataList中注入一条记录,以提供一个“所有”选项。这是我的代码,来自Northwind数据库的数据。

代码语言:javascript
复制
<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>

我正在使用Datalist中的Link按钮来过滤区域并在GridView中显示它们。我想做的是在一些数据绑定过程中,在DataList中添加一个项目,作为所有选项,任何建议都将不胜感激。

代码语言:javascript
复制
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();
}

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-03 00:07:24

一种方法是将所有的' ALL‘值合并到查询中,获取下拉项列表。

代码语言:javascript
复制
SELECT 'All', 'All Regions' 
UNION ALL 
SELECT [RegionID], [RegionDescription] FROM [Region]

但是,如果您有很多这样的列表(或下拉列表),最好是创建一个自定义控件,为您注入“所有”记录。

票数 0
EN

Stack Overflow用户

发布于 2009-02-03 00:16:29

它与以下SQL一起工作:

代码语言:javascript
复制
SELECT '-1' AS 'RegionID', 'All Regions' AS 'RegionDescription' 
UNION ALL SELECT [RegionID], [RegionDescription] FROM [Region]
票数 0
EN

Stack Overflow用户

发布于 2009-11-25 15:20:36

在下拉列表中使用此方法,可以在datalist上使用相同的方法

代码语言:javascript
复制
  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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/505374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档