如何将SqlDataSource绑定到UserControl中的DetailView ?
本文关键字:UserControl 中的 DetailView 绑定 SqlDataSource | 更新日期: 2023-09-27 18:02:20
我创建了一个用户控件,其中包含一个详细信息视图,我计划将其用作模板来开发许多其他页面。例如,我想在我拥有的另一个.aspx页面上使用此控件。这个aspx页面将使用SqlDataSource来进行数据绑定。我对这些东西很陌生,所以我的理解是有限的,所以对我有耐心(谢谢)。
这是用户控件的基础:
<asp:DetailsView ID="DV1" runat="server" AutoGenerateRows="False"
DataKeyNames="ID" DataSourceID="SqlDataSource1" Height="16px" Width="100%"
Font-Size="14pt" FooterText=" " ForeColor="#333333" GridLines="None"
HeaderText=" ">
在后面的代码中,我使这个ID可以访问:
public DetailsView DetailView
{
get { return DV1; }
set { DV1 = value; }
}
在我的aspx页面我有:
<%@ Register Src="StdDetails_View.ascx" TagName="UserList" TagPrefix="uc" %>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ucsConnectionString %>"
SelectCommand="usp_UserInfo_GetBy_ID" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="5afadb8a-3127-4a67-85dd-bde4de6d03c4" Name="ID"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
我能得到这个工作的唯一方法是如果我在userControl中添加BoundFields到我使用的特定存储过程。除了这个,我不知道该怎么办!如何使用这个detailview绑定这个数据源?
感谢你的帮助!
尝试设置AutoGenerateRows = true
<asp:DetailsView ID="DV1" runat="server" AutoGenerateRows="true"
DataKeyNames="ID" DataSourceID="SqlDataSource1" Height="16px" Width="100%"
Font-Size="14pt" FooterText=" " ForeColor="#333333" GridLines="None"
HeaderText=" ">
DataSourceID将只在相同的上下文中工作(即usercontrol)。你需要在你的web表单的代码后面做这样的事情:
UserList.DetailView.DataSource = SqlDataSource1