如何取消绑定的ObjectDataSource?
-
22-09-2019 - |
题
CheckPara是我OnDataBinding程序
SqlDataSource1是ObjectDataSource的(它仅混淆名)
语言是Nemerle,但如果你知道C#你可以很容易阅读
protected virtual CheckPara(_ : object, _ : System.EventArgs) : void
{
foreach(x is Parameter in SqlDataSource1.SelectParameters)
when(x.DefaultValue=="") //Cancel binding
}
所以如何取消绑定时有未完全可配置的ObjectDataSource?
或者......我该怎么跑结合,只有当我的所有参数做?
解决方案
使用ObjectDataSource的选择时,会将您的选择的循环,如果你想取消绑定它,使用e.Cacnel =真和你做!
其他提示
ASP.NET默认不结合。你必须调用DataBind
。调用Page.DataBind
将调用所有控件的DataBind
方法。因此,只要调用控件的DataBind
准备时。我通常使用Page.DataBind
时不调用ObjectDataSource
。
如果您已声明在Web窗体(ASPX)页的ObjectDataSource
,则控制的DataBind
方法立即Page.Load
事件之后和控制的Load
事件之前调用。该ObjectCreating
和ObjectCreated
事件可能是对你有所帮助。下面是一个示例,其设定所述业务对象的连接字符串。
<asp:ObjectDataSource
ID="__definitionCategoryDataSource"
runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetData"
TypeName="Missico.Data.DefinitionDataSetTableAdapters.DefinitionCategoryTableAdapter">
</asp:ObjectDataSource>
Protected Sub __definitionCategoryDataSource_ObjectCreated( _
ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.ObjectDataSourceEventArgs) _
Handles __definitionCategoryDataSource.ObjectCreated
If e.ObjectInstance IsNot Nothing Then
SetObjectDataSourceConnectionString(e.ObjectInstance, DataManager.ConnectionString)
End If
End Sub
Public Sub SetObjectDataSourceConnectionString( _
ByVal objectInstance As Object, _
ByVal connectionString As String)
If objectInstance IsNot Nothing Then
Dim oConnection As System.Data.Common.DbConnection
oConnection = objectInstance.GetType.GetProperty("Connection").GetValue(objectInstance, Nothing)
oConnection.ConnectionString = DataManager.ConnectionString
End If
End Sub
不隶属于 StackOverflow