Обновление данных GridView с использованием LINQ - PullRequest
1 голос
/ 24 марта 2011

У меня есть GridView, который необходимо обновить в событии RowUpdating. Как я могу обновить данные с помощью LINQ?

Я также заполняю GV, используя LINQ, и вот код для этого:

 protected void Page_Load(object sender, EventArgs e)
    {
         string getEntity = Request.QueryString["EntityID"];
         int getIntEntity = Int16.Parse(getEntity);
         using (OISLinq2SqlVs1DataContext dt = new OISLinq2SqlVs1DataContext())
         {
             var tr = from r in dt.Users
                      join s in dt.Entities on r.Entity_ID equals s.ID
                      where s.ID == getIntEntity
                      select new
                      {
                          s.Name,
                          r.FirstName,
                          r.LastName,
                          s.Email,
                          //r.Email,
                          r.UserID,
                          r.Pwd,
                          s.Company,
                          s.Description,
                          s.Phone,
                          s.Fax,
                          s.WebSite

                      };

             gvShowRegistration.DataSource = tr;
             gvShowRegistration.DataBind();
         }

    }

1 Ответ

2 голосов
/ 25 марта 2011

То, что вы пытаетесь сделать, лучше всего выполнить с LinqDataSource

Вот хорошее руководство по этому вопросу от Скотта Гу

http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx

EDIT

Если вы абсолютно не можете использовать Linq DS, то в вашем событии RowUpdating вам придется создать новый контекст данных, повторно-читайте объект на основе DataKey из строки, которую вы обновляете, назначьте новые значения на основе ваших аргументов событий, а затем сохраните ваши изменения.

Это будет больно.Тройная проверка, что вы не можете использовать СПД, прежде чем пройти через все это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...