Listview不会在C#中的静态方法中绑定

时间:2013-12-17 09:46:47

标签: c# asp.net listview data-binding

我有一个listview,我在静态方法中绑定Listview,但是当我尝试绑定listview时,它会显示一个错误,提示对象引用未设置为对象的实例。当我调试时,我发现listview为null。我有这样的静态函数:

    [System.Web.Services.WebMethod]
    public static void LoadSearchList(string Locality)
    {
        SearchResults objSearchResults = new SearchResults();
        objSearchResults.LosdBusinessListview(Locality);
    }
    private void LosdBusinessListview(string LocalityName)
    {
        try
        {
            SearchResults objSearchResults = new SearchResults();
            objLocalityMasterDataAccess = new LocalityMasterDataAccess();
            DataTable dt = objLocalityMasterDataAccess.GetLocalitylist(LocalityName);
            ViewState["LocalityID"] = dt.Rows[0]["LocalityID"].ToString();
            objSearchResults.BusinessListingListView.DataSourceID = SearchResultObjectDataSource.ToString();
            objSearchResults.BusinessListingListView.DataBind();
        }
        catch (Exception ex)
        {
            return;
        }
    }

我从像这样的

这样的javascript调用LoadSearchList()
    PageMethods.LoadSearchList(document.getElementById('CityDiv').innerHTML, OnSuccess);

我有一个列表视图及其数据源,如下所示:

        <asp:ListView ID="BusinessListingListView" runat="server" GroupItemCount="1" OnPagePropertiesChanging="BusinessListingListView_PagePropertiesChanging"
            DataSourceID="SearchResultObjectDataSource">......</asp:ListView>
         <asp:ObjectDataSource ID="SearchResultObjectDataSource" runat="server" EnablePaging="true"
            TypeName="CliqueCityDAL.DataAccess.Configuration.YPSearchResultsDataAccess" SelectCountMethod="GetYPSearchResultsCount"
            SelectMethod="GetYPSearchResults" MaximumRowsParameterName="NoOfRows" StartRowIndexParameterName="StartRowIndex"
            OnSelecting="SearchResultObjectDataSource_Selecting">
            <SelectParameters>
                <asp:Parameter Name="searchText" Type="string" />
                <asp:Parameter Name="searchLocation" Type="string" />
                <asp:Parameter Name="searchCategory" Type="string" />
                <asp:Parameter Name="SearchLocality" Type="string" />
            </SelectParameters>
        </asp:ObjectDataSource>

我有一个选择的对象数据源方法就像这样

  protected void SearchResultObjectDataSource_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
    {
        string searchLocation, searchCategory, searchText;
        searchLocation = Request.Cookies["CityID"].Value;
        searchCategory = Request.QueryString["sc"] == string.Empty ? "" : Request.QueryString["sc"];
        searchText = Request.QueryString["st"] == string.Empty ? "" : Request.QueryString["st"];
        e.InputParameters["searchText"] = searchText;
        e.InputParameters["searchLocation"] = searchLocation;
        e.InputParameters["searchCategory"] = searchCategory;
       if (ViewState["LocalityID"] != null)
       {
           e.InputParameters["SearchLocality"] = ViewState["LocalityID"].ToString();
       }
       else
       {
           e.InputParameters["SearchLocality"] = "0";
       }
    }

0 个答案:

没有答案