KyLim0211 Ответов: 1

Ошибка при вставке источника данных в gridview


Мой дал
public List<BOL.MRF> MRFList(string SUBS_CD, string cc)
{
    List<BOL.MRF> vOE_LIST = new List<BOL.MRF>();

    oConnection.ConnectionString = ConnectionString;
    oConnection.Open();

    SqlCommand oCommand = new SqlCommand();
    oCommand.Connection = oConnection;
    oCommand.CommandType = CommandType.StoredProcedure;
    oCommand.CommandText = "mrf_list1";
    oCommand.Parameters.Add(new SqlParameter("@Subs_cd", SUBS_CD));
    oCommand.Parameters.Add(new SqlParameter("@cc", cc));
    SqlDataReader oReader = oCommand.ExecuteReader();
    while (oReader.Read())
    {
        BOL.MRF MRF_L = new BOL.MRF();
        MRF_L.E_Name = oReader.IsDBNull(oReader.GetOrdinal("E_Name")) ? "" : oReader["E_Name"].ToString();
        MRF_L.requester = oReader.IsDBNull(oReader.GetOrdinal("Name")) ? "" : oReader["Name"].ToString();
        MRF_L.Location = oReader.IsDBNull(oReader.GetOrdinal("E_Loc")) ? "" : oReader["E_Loc"].ToString();
        MRF_L.P_Desc = oReader.IsDBNull(oReader.GetOrdinal("D_Prob")) ? "" : oReader["D_Prob"].ToString();
        vOE_LIST.Add(MRF_L);
    }
    oReader.Close();
    oConnection.Close();

    return vOE_LIST;

}


мой КС.aspx-файл
protected void FillRequestGrid()
   {
       int loggedUserID = Convert.ToInt32(Session["loggedUserID"]);
       List<BOL.UserInfo> userslist = new UserInfos().List();
       BOL.UserInfo loggeduser = userslist.Where(x => x.UserID == loggedUserID).FirstOrDefault();

       DAL.MRFs mrf_L= new MRFs();
       var mrf1 = mrf_L.MRFList(loggeduser.SUBSIDIARY_CD, loggeduser.CostCenter);

       GridR.DataSource = mrf_L;
       GridR.DataBind();

       if (GridR.Rows.Count > 0)
       {
           GridR.HeaderRow.TableSection = TableRowSection.TableHeader;
       }
   }


я получаю эту ошибку при заполнении источника данных в моем gridview.
ошибка :
Additional information: Data source is an invalid type.  It must be either an IListSource, IEnumerable, or IDataSource.
линия
GridR.DataSource = mrf_create;


Есть идеи, как преобразовать его в listsource/datasource?

Что я уже пробовал:

нужен проводник, большое вам спасибо.

Kornfeld Eliyahu Peter

Неясно, что это за тип (как объявленный) MRFs, но ясно, что не один из упомянутых выше...
Пожалуйста, проверьте это - и поделитесь с нами, если не можете увидеть проблему в одиночку...

j snooze

Код, который вы опубликовали, не соответствует строке, в которой, как вы говорите, произошла ошибка. Это GridR. DataSource = mrf_L;
или
GridR.Источник данных = mrf_create;
??
В любом случае, похоже, что вы пытаетесь привязать один объект к источнику данных из определения mrf_L. usersList-это единственный объект списка, который я вижу в методе, где вы пытаетесь привязать источник данных к сетке.

1 Ответов

Рейтинг:
0

Vincent Maverick Durano

Вам нужно привязать результат списка, а не объект, содержащий ваш список<bol.mrf>. Так что попробуйте что-нибудь вроде этого:

DAL.MRFs mrf_L= new MRFs();
var mrf1 = mrf_L.MRFList(loggeduser.SUBSIDIARY_CD, loggeduser.CostCenter);

GridR.DataSource = mrf1;
GridR.DataBind();