DataSource 和 DataSourceID 都是在 'ctl00' 上定义的。删除一个定义
Both DataSource and DataSourceID are defined on 'ctl00'. Remove one definition
我正在尝试以声明方式使用 SqlDataSource 创建 RadGrid,并且还需要使用服务器端的数据库记录更新网格。
示例代码如下。
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="spSelect" SelectCommandType="StoredProcedure" ConnectionString="<%$ ConnectionStrings:iTomsConnectionString %>">
<SelectParameters>
<asp:SessionParameter Name="Id" SessionField="Id" Type="Int32" />
<asp:SessionParameter Name="Name" SessionField="Name" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadGrid ID="grvUpdate" runat="server" GridLines="Horizontal"
CellPadding="0" BorderWidth="0px" EnableEmbeddedSkins="False" Skin="skn_RadGrid"
SkinsDir="|CurrentTheme|/" SkinsPath="|CurrentTheme|/"
Width="382px" CellSpacing="0">
<MasterTableView
AllowPaging="true"
PageSize="15"
EditMode="PopUp"
CommandItemDisplay="Top"
AllowFilteringByColumn="false" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="Id">
<Columns>
<telerik:GridBoundColumn DataField="Id" DataType="System.Int64" FilterControlAltText="Filter Id column" HeaderText="Id" ReadOnly="True" SortExpression="Id" UniqueName="Id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Name" HeaderText="Name" SortExpression="Name" UniqueName="Name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Amount" HeaderText="Amount" SortExpression="Amount" UniqueName="Amount">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn DataTextField="Reject" HeaderText="Reject" SortExpression="Reject" Text="Reject Button" UniqueName="Reject" CommandName="Reject"></telerik:GridButtonColumn>
</Columns>
<EditFormSettings>
<EditColumn InsertImageUrl="Update.gif" UpdateImageUrl="Update.gif" CancelImageUrl="Cancel.gif"></EditColumn>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
如何在不出现 ASP.Net 服务器代码中此查询标题中提到的错误的情况下进行数据绑定,以及如何将 SqlDataSource 用于 retrieve/update/delete 记录?
page_load中的服务器端代码如下
grvUpdate.DataSource = ds.Tables[0];
grvUpdate.DataBind();
有两种方法可以做到
将您的数据源控件 ID 分配给 属性、DataSourceID
,在您的情况下,应该是 DataSourceID = "SqlDataSource1"
。此方法使用声明式数据源控件并以声明方式将数据绑定到网格。 (无需额外编码)
添加 NeedDataSource
事件并在后面的代码中分配您的数据源,在您的情况下,应该像这样完成
方法一
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="spSelect" SelectCommandType="StoredProcedure" ConnectionString="<%$ ConnectionStrings:iTomsConnectionString %>">
<SelectParameters>
<asp:SessionParameter Name="Id" SessionField="Id" Type="Int32" />
<asp:SessionParameter Name="Name" SessionField="Name" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<telerik:RadGrid ID="grvUpdate" runat="server" DataSourceID="SqlDataSource1">
//...
</telerik:RadGrid>
方法二
<telerik:RadGrid ID="grvUpdate" runat="server" OnNeedDataSource="grvUpdate_NeedDataSource">
//...
</telerik:RadGrid>
protected void grvUpdate_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
grvUpdate.DataSource = ds.Tables[0]; // assume ds already exists in the scope
}
有关 RadGrid 数据绑定的更多主题和详细信息,请参阅此文档:
http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/data-binding/understanding-data-binding/telerik-radgrid-data-binding-basics
我需要同时实施这两种方法。下面给出解决方案。
grvUpdate.DataSource = ds.Tables[0];
grvUpdate.DataSourceID = String.Empty;
grvUpdate.DataBind();
我正在尝试以声明方式使用 SqlDataSource 创建 RadGrid,并且还需要使用服务器端的数据库记录更新网格。
示例代码如下。
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="spSelect" SelectCommandType="StoredProcedure" ConnectionString="<%$ ConnectionStrings:iTomsConnectionString %>">
<SelectParameters>
<asp:SessionParameter Name="Id" SessionField="Id" Type="Int32" />
<asp:SessionParameter Name="Name" SessionField="Name" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadGrid ID="grvUpdate" runat="server" GridLines="Horizontal"
CellPadding="0" BorderWidth="0px" EnableEmbeddedSkins="False" Skin="skn_RadGrid"
SkinsDir="|CurrentTheme|/" SkinsPath="|CurrentTheme|/"
Width="382px" CellSpacing="0">
<MasterTableView
AllowPaging="true"
PageSize="15"
EditMode="PopUp"
CommandItemDisplay="Top"
AllowFilteringByColumn="false" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="Id">
<Columns>
<telerik:GridBoundColumn DataField="Id" DataType="System.Int64" FilterControlAltText="Filter Id column" HeaderText="Id" ReadOnly="True" SortExpression="Id" UniqueName="Id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Name" HeaderText="Name" SortExpression="Name" UniqueName="Name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Amount" HeaderText="Amount" SortExpression="Amount" UniqueName="Amount">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn DataTextField="Reject" HeaderText="Reject" SortExpression="Reject" Text="Reject Button" UniqueName="Reject" CommandName="Reject"></telerik:GridButtonColumn>
</Columns>
<EditFormSettings>
<EditColumn InsertImageUrl="Update.gif" UpdateImageUrl="Update.gif" CancelImageUrl="Cancel.gif"></EditColumn>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
如何在不出现 ASP.Net 服务器代码中此查询标题中提到的错误的情况下进行数据绑定,以及如何将 SqlDataSource 用于 retrieve/update/delete 记录?
page_load中的服务器端代码如下
grvUpdate.DataSource = ds.Tables[0];
grvUpdate.DataBind();
有两种方法可以做到
将您的数据源控件 ID 分配给 属性、
DataSourceID
,在您的情况下,应该是DataSourceID = "SqlDataSource1"
。此方法使用声明式数据源控件并以声明方式将数据绑定到网格。 (无需额外编码)添加
NeedDataSource
事件并在后面的代码中分配您的数据源,在您的情况下,应该像这样完成
方法一
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="spSelect" SelectCommandType="StoredProcedure" ConnectionString="<%$ ConnectionStrings:iTomsConnectionString %>">
<SelectParameters>
<asp:SessionParameter Name="Id" SessionField="Id" Type="Int32" />
<asp:SessionParameter Name="Name" SessionField="Name" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<telerik:RadGrid ID="grvUpdate" runat="server" DataSourceID="SqlDataSource1">
//...
</telerik:RadGrid>
方法二
<telerik:RadGrid ID="grvUpdate" runat="server" OnNeedDataSource="grvUpdate_NeedDataSource">
//...
</telerik:RadGrid>
protected void grvUpdate_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
grvUpdate.DataSource = ds.Tables[0]; // assume ds already exists in the scope
}
有关 RadGrid 数据绑定的更多主题和详细信息,请参阅此文档:
http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/data-binding/understanding-data-binding/telerik-radgrid-data-binding-basics
我需要同时实施这两种方法。下面给出解决方案。
grvUpdate.DataSource = ds.Tables[0];
grvUpdate.DataSourceID = String.Empty;
grvUpdate.DataBind();