通过后面的代码更新GridView

时间:2011-04-08 17:27:27

标签: c# asp.net linq-to-sql gridview

我正在使用GV(我正在通过代码填充),其中我想要更新我选择的行中的项目。

以下是我在GView中填充的内容:

  var td = from s in GetEntity()
                 join r in GetPlanName() on s.Product_ID equals r.Product_ID
                 where s.Entity_ID == getEntity
                 select new
                 {
                     s.Product_ID,
                     r.PlanName,
                     s.HiCommissionOld,
                     s.LowCommissionOld


                 };
        gvShowComm.DataSource = td;
        gvShowComm.DataBind();

以下是我的GV的标记:

<asp:GridView runat="server" Height="233px" Width="602px" ID ="gvShowComm" 
    CellPadding="4" ForeColor="#333333" GridLines="None" 
    EnableViewState="False" OnRowEditing = "gvShowComm_RowEditing" 
    OnRowUpdating = "gvShowComm_RowUpdating" 
    OnRowCancelingEdit = "gvShowComm_RowCancelingEdit" 
    DataKeyNames = "Product_ID" >



    <Columns>
        <asp:CommandField ShowCancelButton="True" ShowEditButton="True" />
    </Columns>
 </asp:GridView>

这是我的代码背后:

 protected void gvShowComm_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
          int index = gvShowComm.EditIndex;
        GridViewRow row = gvShowComm.Rows[index];
        string name = row.Cells[2].Text; //name is empty!
    }

所以这是我的问题:我可以通过我的GView标签中的DataKeyNames属性访问一列,但我必须访问其他元素才能通过后面的代码中的LINQ更新我的网格视图。我之所以不使用LDS,是因为我正在更新来自2个不同数据库的表。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以像这样访问行中的其他单元格。获取look at this link了解更多详情。

gvShowComm.Rows[e.RowIndex].Cells[index]