2014-02-15 11 views
0

Значение, введенное в виде сетки в текстовом поле в редакторе, не может идти в ногу. он равен нулю.Как получить данные из текстового поля Gridview?

testlinq1DataContext db = new testlinq1DataContext(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      show(); 
     } 
    } 

    private void show() 
    { 
     var ace = from a in db.ITdevicedetails 
        join b in db.Brands 
        on a.Specid equals b.Specid 
        join c in db.Devicestatus 
        on a.Statusid equals c.Statusid 
        where a.Statusid == "ST03" 
        join d in db.Typedevices 
        on a.Type equals d.Type 

        select new 
        { 
         IDdevice = a.IDdevice, 
         Type = d.Type, 
         Brand = b.Brand1, 
         Spec = b.Spec, 

         Model = b.Model, 
         Accode = a.Accode, 
         IPaddress = a.IPaddress, 
         Serialnumber = a.Serialnumber, 
         Status = c.Status, 
         Comment = a.Comment 
        }; 

     GridView1.DataSource = ace.ToList(); 
     GridView1.DataBind(); 
    } 

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     if (Page.IsPostBack) 
     { 
      show(); 
      GridView1.EditIndex = e.NewEditIndex; 

      DataBind(); 
     } 
    } 


    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
    { 
     if (Page.IsPostBack) 
     { 
      var ie = 
       (from ac in db.ITdevicedetails where ac.IDdevice == "note01" select ac).FirstOrDefault(); 

      **//this's my problem the value of GridView1.Rows[0].Cells[8].Text; is null. 
       // but If I assign a value to it, ie.Comment = "nb123"; it's worked.** 

      ie.Comment = GridView1.Rows[0].Cells[8].Text; 

      db.SubmitChanges(); 

      GridView1.EditIndex = -1; 

      binded(); 
     } 
    } 

Я не понимаю, почему мои обновления данных в текстовое поле является пустым.

+0

Не пытайтесь вызвать 'show()' в обработчик события GridView1_RowEditing –

+0

Я стараюсь делать то, что вам говорят, но пока нет. Спасибо за вашу помощь – Collector

ответ

0
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    if (Page.IsPostBack) 
    { 
     var ie = 
     (from ac in db.ITdevicedetails where ac.IDdevice == "note01" select ac).FirstOrDefault(); 
     //this is my answer !!! 
     TextBox xp = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[9].Controls[0])); 
     ie.Comment = xp.Text; 
     db.SubmitChanges(); 
     GridView1.EditIndex = -1; 
     binded(); 
    } 

} 

OK Теперь я могу обновить мое gridview, потому что забыл упомянуть текстовое поле в gridview.

Смежные вопросы