2013-02-18 58 views
0

我知道如何编辑数据网格视图中的整行,我想知道如何编辑只保留其余数据的一列。我现在的代码在下面给出,我想知道如何才能编辑一列并将数据更新到数据表。我想只编辑“ab”列。编辑数据网格视图的一列

HTML代码

<asp:GridView ID="GridView1" runat="server" AutoGenerateEditButton="True" 
       OnRowEditing="Gridview1_rowediting" 
       OnRowUpdating="Gridview_RowUpdating" 
      OnRowCancelingEdit="Gridview_EditCanceling" > 
</asp:GridView> 

背后

DataTable dt = new DataTable(); 

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

private void add() 
{ 

    dt.Columns.Add("ab", typeof(string)); 
    dt.Columns.Add("ac", typeof(string)); 
    dt.Columns.Add("av", typeof(string)); 
    dt.Columns.Add("ax", typeof(string)); 
    DataRow row = dt.NewRow(); 
    row["ac"] = "sndasbfb"; 
    row["av"] = "sndasbfb"; 
    row["av"] = "sndasbfb"; 
    row["ax"] = "sndasbfb"; 
    dt.Rows.Add(row); 

    GridView1.DataSource = dt; 
    //ProjectsGridView.DataSource = dt; 
    //ReleasesGridView.DataSource = dt; 
    GridView1.DataBind(); 
    // ProjectsGridView.DataBind(); 
    // ReleasesGridView.DataBind(); 
} 

protected void Gridview1_rowediting(object sender, GridViewEditEventArgs e) 
{ 
    //GridView1.EditIndex = e.NewEditIndex; 
} 

protected void Gridview_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    GridViewRow row = GridView1.Rows[e.RowIndex]; 
} 

protected void Gridview_EditCanceling(object sender, GridViewCancelEditEventArgs e) 
{ 
    GridView1.EditIndex = -1; 
    add(); 
} 
+0

要显示你可以使用属性“只读”。 – 2013-02-18 12:01:12

+0

是的,但那cnt被chnaged – user2082903 2013-02-18 12:17:03

回答

2

可以只读一组列到真正的在设计视图或代码:

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

    //If you are using template field 

    ((TemplateField)gvGridView.Columns[index]).EditItemTemplate = null; 

    //If you are using boundfield 

    ((BoundField)gvGridView.Columns[index]).ReadOnly = true; 
} 

或者你可以删除编辑模板,以便在设计视图中的列转换为模板列。

检查此链接了解更多信息:

Gridview disable edit on 1 column asp.net

在声明中GridView中列
0

C#代码,我在我的应用程序之一尝试这种代码。

foreach (DataGridViewRow c in this.DataGrid.Rows) 
        c.Cells[0].Value = "Something"; 

这里“0”是ColumnIndex。现在你可以根据你的需要放置条件。

+0

我试过这个,它不让我通过浏览器编辑代码 – user2082903 2013-02-18 12:28:25

+0

试试这个链接:http://www.codeproject.com/Articles/33339/Edit-Cells-in-Gridview -in-ASP-NET和http://www.codeproject.com/Articles/18136/Edit-Individual-GridView-Cells-in-ASP-NET – DhavalR 2013-02-18 12:33:07