0

データ グリッド ビューで行全体を編集する方法を知っています。残りのデータを同じにして、1 つの列だけを編集する方法を知りたいです。私が持っている現在のコードを以下に示します。1 つの列を編集して、そのデータをデータ テーブルに更新する方法を知りたいです。列「ab」のみを編集したいと思います。

HTML コード

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

C# コード ビハインド

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();
}
4

2 に答える 2

2

デザイン ビューまたは次のようなコードで、列の ReadOnly を True に設定できます。

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は1列asp.netで編集を無効にします

于 2013-02-18T13:09:31.173 に答える
0

アプリケーションの 1 つでこのコードを試しました。

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

ここで「0」は ColumnIndex です。これで、必要に応じて条件を設定できます。

于 2013-02-18T12:18:26.353 に答える