“Both DataSource and DataSourceID are defined” error using ASP.NET GridView

后端 未结 7 2340
面向向阳花
面向向阳花 2021-02-15 06:38

\"Both DataSource and DataSourceID are defined on \'grdCommunication\'. Remove one definition.\"

I just got this error today, the code has been working until this after

7条回答
  •  再見小時候
    2021-02-15 07:02

    I ran into the same error, but a totally different problem and solution. In my case, I'm using LINQ to SQL to populate some dropdown lists, then caching the results for further page views. Everything would load fine with a clear cache, and then would error out on subsequent page views.

    if (Cache["countries"] != null)
    {
        lbCountries.Items.Clear();
        lbCountries.DataValueField = "Code";
        lbCountries.DataTextField = "Name";
        lbCountries.DataSource = (Cache["countries"]);
        lbCountries.DataBind();}
    else
    {
        var lstCountries = from Countries in db_read.Countries orderby Countries.Name select Countries;
        lbCountries.Items.Clear();
        lbCountries.DataValueField = "Code";
        lbCountries.DataTextField = "Name";
        lbCountries.DataSource = lstCountries.ToList();
        lbCountries.DataBind();
    
        Cache.Add("countries", lstCountries, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 240, 0), System.Web.Caching.CacheItemPriority.High, null);
    }
    

    The issue came from: Cache.Add("countries", lstCountries, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 240, 0), System.Web.Caching.CacheItemPriority.High, null);

    When it should have been: Cache.Add("countries", lstCountries.ToList(), null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 240, 0), System.Web.Caching.CacheItemPriority.High, null);

提交回复
热议问题