【问题标题】:Is there a way to directly use a property of an enclosing usercontrol in a sqldatasource?有没有办法在 sqldatasource 中直接使用封闭用户控件的属性?
【发布时间】:2018-08-15 21:23:03
【问题描述】:

我有一个用户控件。在该控件中,我有一个使用 sql 数据源的数据视图。我希望该 sql 数据源的参数之一是封闭用户控件的属性。这个想法是我希望包含用户控件的页面将用户控件上的属性设置为记录的 ID,使用户控件可见,现在用户可以看到该记录的数据。

我在想我应该能够拥有一个引用封闭用户控件的 ControlParameter。但是控件 ID 是什么?

我想出了一个变通办法,就是使用一个普通的参数并编写

Public Property record_id As Integer
    Get
        Return dsRecord.SelectParameters.Item("rid").DefaultValue
    End Get
    Set(value As Integer)
        dsRecord.SelectParameters.Item("rid").DefaultValue = value
        DetailsView1.DataBind()
    End Set
End Property

这行得通,而且代码不多,但看起来有点……粗糙。有没有更清洁的方法?

【问题讨论】:

  • dsRecord.SelectParameters.Item("rid").DefaultValue = value 可以缩短为dsRecord.SelectParameters("rid").DefaultValue = value,如果控件可见并且设置了DataSourceID,则您可能不需要Set 中的Databind()
  • 另外,我认为WriteOnly 属性就足够了。

标签: asp.net dataview


【解决方案1】:

假设 YourDetailsView.DataSourceID="dsRecord" 并且在绑定时可见,这可能就是您所需要的:

  Public WriteOnly Property record_id As Integer
    Set(value As Integer)
      dsRecord.SelectParameters.Item("rid").DefaultValue = value
    End Set
  End Property

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 2021-06-24
    • 1970-01-01
    • 2021-06-21
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多