当ASPxGridView控件内部正在进行数据绑定时,ASCX文件上的公共属性变为空

本文关键字:属性 文件 ASCX 内部 控件 ASPxGridView 正在进行 数据 定时 绑定 | 更新日期: 2023-09-27 17:49:20

我有一个ASCX控件,我在aspx页面内动态加载。我使用public属性将参数传递给我的ASCX控件,并且我能够在OnInit事件中捕获它。

ASCX文件中,我有一个ASPxGridView控件,其中我使用ObjectDataSource来获取数据。

ASPxGridView控件绑定数据时,已经设置的属性现在的值变为NULL。由于属性是ID,我需要访问一些SQL表,数据绑定失败。

我相信我做的事情不正确,为什么public属性变成null ?

我应该做些什么来预防它?

谢谢

当ASPxGridView控件内部正在进行数据绑定时,ASCX文件上的公共属性变为空

我认为你面临这个问题是因为ViewStateViewState只检索同一页面的数据。如果导航到其他页面,则在页面加载事件中该值变为空。因此,您可以使用SESSION STATE变量来代替ViewState

SESSION也用于存储数据,但这样做的好处是,即使在页面导航之后,您也可以获得数据。

我希望这将解决你的问题。
    //TO pass data in acxs control
Public Property DDLItemFilter() As String
    Get
        Return ViewState("P_DDLItemFilter")
    End Get
    Set(ByVal Value As String)
        ViewState("P_DDLItemFilter") = Value
    End Set
End Property

    // to use this function in ascx control

Sub Bind_Grid()
    Dim SearchVal As String = MakeQueryString(txt.Text)
    lssql = " Select ApplNo,dbo.Fnc_LocName(CompCode,YearCode,TenantBranch) As     TenantBranch from PropAllocAppl " & _
                "Where COMPCODE='" & compcode & "' And YEARCODE='" & yearcode & "'"
    lssql = lssql & " And ApplNo Like '" & SearchVal.Trim & "%' "
    If ViewState("P_DDLItemFilter") <> "" Then
        lssql = lssql & " And " & ViewState("P_DDLItemFilter") & "  "
    End If
lssql = lssql & " Order By ApplNo "
    Dim dq As New DbQuery(lssql, True)
    Dim dt As DataTable = dq.GetTable
    DataGrid_ddl.DataSource = dt
    DataGrid_ddl.DataBind()
End Sub

    //pass data from aspx page and the id of the control is "UC_ApplCode1"
UC_ApplCode1.DDLItemFilter = " PropAllocAppl.AssetType not in ('B','V') "

    //in same way get the data from ascx control
Public Function getDDLText() As String
    Return (Trim(txt1.Text))
End Function
    //you got the data in aspx page just calling this function with that .ascx id
string abc=UC_ApplCode1.getDDLText()

看起来你得到了一个参数,绑定了一个网格视图的数据,在page_load时刻发生了类似回发的事情,第二次你没有指定的参数。检查你的DataGridView AutoPostBack属性是否为false。或者,如果您需要回发,保存参数(ID)到某个地方,如Session等