如何在asp.net自定义用户控件中使用更高级别的数据源?

时间:2010-01-13 15:57:43

标签: asp.net user-controls datasource

我正在设置一个包含多个表单的Web应用程序。每个表单都在asp:FormView中定义,DataSource设置为ObjectDataSource。每个表单都包含它自己的字段集,并且始终包含一个或多个字段块,对于多个表单都是相同的。

因为这些块是相同的,所以我决定在自定义用户控件中定义它们。提出的问题是:

  1. 如何使用相同的数据源 对于输入字段 usercontrol在'更高'中 ASP:FormView的
  2. 是否可以将DataBinding.Bind()用于usercontrol中的输入字段,并使用相同的数据源?
  3. 提前感谢您的回复。

1 个答案:

答案 0 :(得分:1)

经过长时间的搜索后,我在此网站上发现了类似的问题:http://weblogs.asp.net/anasghanem/archive/2009/03/31/sharing-formview-edit-and-insert-templates-and-avoid-duplicate-markup.aspx

简而言之,解决方案层次结构:

<asp:FormView ID="FormView1" runat="server" DefaultMode="Edit" DataSourceID="ObjectDataSource1">
    <uc1:TestControl ID="TestControl1" runat="server" PhoneNumber='<%# Bind("PhoneNumber") %>' />

usercontrol的代码隐藏:

[Bindable(true)]
public partial class TestControl : System.Web.UI.UserControl
{
    [Bindable(true), DefaultValue("")]
    public string PhoneNumber
    {
        get
        {
            return this.PhoneTextBox.Text;
        }
        set
        {
            this.PhoneTextBox.Text = value;
        }
    }
}