Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net DropDownList仅在现场回发时丢失数据源_Asp.net_Vb.net_Drop Down Menu_Dotnetnuke - Fatal编程技术网

Asp.net DropDownList仅在现场回发时丢失数据源

Asp.net DropDownList仅在现场回发时丢失数据源,asp.net,vb.net,drop-down-menu,dotnetnuke,Asp.net,Vb.net,Drop Down Menu,Dotnetnuke,我有一个使用ASP.Net控件和VB.Net代码的DotNetNuke网页。在页面加载时,我检索一个包含所有用户工单的数据集。此数据集用于填充asp:datagrid。我还检索数据集来填充组合框,其中包括用户的零售帐户、服务类型、订单状态和零售位置。在为这些DropDownList中的任何一个选择DexChange时,我创建/修改DataGridFilter以修改网格的显示结果。我将完整的工单数据集存储为会话变量 在我的开发环境中,我在本地主机上运行,一切正常。当我的代码发布到我的live站点时

我有一个使用ASP.Net控件和VB.Net代码的DotNetNuke网页。在页面加载时,我检索一个包含所有用户工单的数据集。此数据集用于填充asp:datagrid。我还检索数据集来填充组合框,其中包括用户的零售帐户、服务类型、订单状态和零售位置。在为这些DropDownList中的任何一个选择DexChange时,我创建/修改DataGridFilter以修改网格的显示结果。我将完整的工单数据集存储为会话变量

在我的开发环境中,我在本地主机上运行,一切正常。当我的代码发布到我的live站点时,页面会按预期加载,并在设置和绑定数据源时调用每个DropDownList的SelectedIndexChange事件。但是当用户从任何dropdownlists中进行选择时,所有dropdownlists的数据源似乎都丢失了。这在开发环境中不会发生。生活和发展方面的数据库似乎具有相同的结构和数据

 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dsStatus As DataSet
        Dim dsChangeStatus As DataSet

        If IsPostBack Then
            If Not Session.Item("WorkOrdersDS") Is Nothing Then
                m_dsWorkOrders = CType(Session.Item("WorkOrdersDS"), DataSet)
            End If

            If Not ViewState("DataGridFilter") Is Nothing Then
                m_DataGridFilter = ViewState("DataGridFilter").ToString
            End If
        Else
            ddAccount.DataTextField = "NameCity"
            ddAccount.DataValueField = "AccountID"
            LoadRetailAccounts()
            LoadLocations(CInt(Me.ddAccount.SelectedValue))
            dgWorkOrders.Attributes("SortExpression") = "LastUpdated_DT"
            dgWorkOrders.Attributes("SortASC") = "DESC"

            dsStatus = m_DL.RunSPGetDS("PRC_GSI_CSWorkOrder_Status_S")
            With ddStatus
                .DataTextField = "Status_VC"
                .DataValueField = "Status_ID"
                .DataSource = dsStatus
                .DataBind()
            End With
            Library.GSI.Library.ControlHelp.CreateBlankFirstItem(ddStatus, "All Except Withdrawn", "-1")
            Library.GSI.Library.ControlHelp.CreateBlankFirstItem(ddStatus, "All", "0")

            dsChangeStatus = m_DL.RunSPGetDS("PRC_GSI_CSWorkOrder_Status_S_CanChange")
            With ddChangeStatus
                .DataTextField = "Status_VC"
                .DataValueField = "Status_ID"
                .DataSource = dsChangeStatus
                .DataBind()
            End With

            If Me.ddAccount.SelectedItem.ToString.Substring(0, 1) = "*" Then
                CreateOrgChartFilter()
            Else
                CreateFilter()
            End If
            GetWorkOrdersList()
            LoadServiceTypes()
            BindDataGrid()
        End If
    End Sub

    What am I missing that might be different in my live and development code?

不过,DataGrid并没有失去它的价值,对吗?只有下拉列表?是的,datagrid根本不显示(没有标题,什么也没有)。我假设这是因为没有值可以传递给datagridfilter,因为DropDownList中没有这些值来自的值。我知道page_load事件实际上在selectedindex_change事件之前调用,但是在这两个事件之间是否存在可能发生的事件?经过更多测试,似乎只有部分用户才会发生错误。这给我的印象是,错误可能是由数据引起的,我得到了一个未经处理的空引用异常,但我已经仔细阅读了代码和数据,感到不知所措。您是否有任何try-catch块可能会吞噬您的用户体验的错误?我在故障排除期间添加了不同的try-cath块。我的老板让我更换datagridfilter,每次选定的索引更改都返回数据库。现在,我将所有参数传递给存储过程并在SELECT查询中进行筛选,而不是获取完整的数据集并进行筛选。错误仍然存在。我不再使用任何会话变量(与此页面相关)。