我有1 DataList和2 SqlDataSource
我最初将DataList1设置为与SqlDataSource1配对
我有一个按钮可以将DataSource更改为SqlDataSource2
DataList1.DataSource = SqlDataSource2;
DataList1.DataBind();但是这样做,我就犯了个错误
System.InvalidOperationException:‘DataSource和DataSourceID都定义在'DataList1’上。删除一个定义。
有什么想法吗?有办法重置数据源吗?
我的html
<form id="form1" runat="server">
<div>
</div>
<asp:DataList ID="DataList1" runat="server" DataKeyField="ID" DataSourceID="SqlDataSource1" RepeatColumns="3" RepeatDirection="Horizontal">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Image") %>' Width="300px" />
<br />
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
<br />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [items]"></asp:SqlDataSource>
<br />
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [items] WHERE ([Name] = ?)">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="Name" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />发布于 2018-04-23 22:56:54
从错误中,您需要将DataSource或DataSourceID定义为DataList,而不是同时定义DataList中的HTMLDataSourceID,一旦定义了另一个数据DataSource,就需要清除它。
DataList1.DataSourceID = null;
DataList1.DataSource = SqlDataSource1;
DataList1.DataBind();或者将DataSourceID="SqlDataSource1"从DataList HTML中删除,并在页面加载中定义DataSource,这样就可以将DataList1.DataSource设置为直接需要DataSource。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataList1.DataSource = SqlDataSource2;
DataList1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
DataList1.DataSource = SqlDataSource1;
DataList1.DataBind();
}https://stackoverflow.com/questions/49990596
复制相似问题