DataSource和DataSourceID都在'DataList1'上定义。删除一个定义

时间:2018-03-11 18:47:57

标签: c# asp.net visual-studio-2017

下载列表和数据列表代码

<div>
    Sort by Category: 
    <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem>All</asp:ListItem>
        <asp:ListItem>Decoration</asp:ListItem>
        <asp:ListItem>Catering</asp:ListItem>
        <asp:ListItem>Entertainment</asp:ListItem>
        <asp:ListItem>Sound</asp:ListItem>
        <asp:ListItem>Others</asp:ListItem>
    </asp:DropDownList>

    <asp:DataList ID="DataList1" runat="server"  
        GridLines="Both" RepeatColumns="4" RepeatDirection="Horizontal"
        Width="1000px" DataSourceID="SqlDataSource1" >
        <ItemTemplate>
            <table class="nav-justified">
                <tr>
                    <td class="text-center">
                        <strong>
                            <asp:Label ID="Label1" runat="server"
                            Text='<%# Eval("serName") %>'></asp:Label>
                        </strong>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Image ID="Image1" runat="server" Height="179px"
                            ImageUrl='<%# Eval("serImg") %>' Width="191px"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <strong>
                            <asp:Label ID="Label2" runat="server" Text="Rs"></asp:Label>
                            <asp:Label ID="Label3" runat="server" 
                                Text='<%# Eval("sprice") %>'>
                            </asp:Label>
                        </strong>
                    </td>
                </tr>
                <tr>
                    <td class="text-center">
                        <asp:Button ID="Button1" runat="server" Text="Details" />
                    </td>
                </tr>
            </table>
            <br />
        </ItemTemplate>
    </asp:DataList>
</div>

这是.cs代码。其目的是根据下拉列表中选定的类别过滤列表中的数据

protected void Page_Load(object sender, EventArgs e)
{
    String conString = ConfigurationManager.ConnectionStrings["regcon"].ConnectionString;
    string query = "select * from addService where serCategory=@cat";

    SqlCommand cmd = new SqlCommand(query);
    cmd.Parameters.AddWithValue("@cat", DropDownList1.SelectedItem.Value);
    using (SqlConnection con = new SqlConnection(conString))
    {
        using (SqlDataAdapter sda = new SqlDataAdapter())
        {
            cmd.Connection = con;
            sda.SelectCommand = cmd;
            using (DataSet ds = new DataSet())
            {
                sda.Fill(ds);
                DataList1.DataSource = ds;
                DataList1.DataBind();
            }
        }
    }   
}

我收到错误“DataSource和DataSourceID都在'DataList1'上定义。删除一个定义。”当我运行它。删除Datalist1或DataSourceID会给出错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题是,在datalist上你有一个数据源

DataSourceID="SqlDataSource1"

然后您还在后面的代码中应用数据源

DataList1.DataSource = ds;

你不能同时做到这两点。您可以删除代码中的现有代码,然后根据需要应用新代码。