ASP.Net Gridview,如何激活基于ID的编辑模式(DataKey)

我有一个页面,我们称之为SourceTypes.aspx,它有一个显示源类型列表的GridView. GridView的一部分是DataKey,SourceTypeID.如果源TypeID通过查询sting传递给页面,如何根据SourceTypeID将Gridview置于编辑模式以获取相应的行?

GridView绑定到sqlDataSource对象.

我有一种感觉,当答案出现时我会踢自己!

我已经看了Putting a gridview row in edit mode programmatically,但它有些缺乏具体细节

解决方法

当你想根据数据将其置于编辑模式时,这有点棘手.您告诉datagrid哪些显示的行是可编辑的,而不是您想要编辑哪些数据,因此您需要遍历网格中的每一行,查看它是否与id匹配,并将EditItemIndex设置为适当的价值和重新绑定.

您可以在绑定之前查看源数据并从中获取行号,但是您可能遇到分页,排序等问题.

重新绑定网格有点麻烦,但我想不出更好的方法.

public partial class _Default : System.Web.UI.Page
{

    private DataTable GetData()
    {
        DataTable tTable = new DataTable();
        tTable.Columns.Add(new DataColumn("Column1",typeof(int)));
        tTable.Columns.Add(new DataColumn("Column2",typeof(string)));

        DaTarow tRow = tTable.NewRow();
        tRow["Column1"] = 1;
        tRow["Column2"] = "Test1";
        tTable.Rows.Add(tRow);

        tRow = tTable.NewRow();
        tRow["Column1"] = 2;
        tRow["Column2"] = "Test2";
        tTable.Rows.Add(tRow);

        tRow = tTable.NewRow();
        tRow["Column1"] = 3;
        tRow["Column2"] = "Test3";
        tTable.Rows.Add(tRow);

        tRow = tTable.NewRow();
        tRow["Column1"] = 4;
        tRow["Column2"] = "Test4";
        tTable.Rows.Add(tRow);

        tRow = tTable.NewRow();
        tRow["Column1"] = 5;
        tRow["Column2"] = "Test5";
        tTable.Rows.Add(tRow);

        return tTable;
    }

    private void BindData()
    {
        DataTable tTable = GetData();

        TestGrid.DataSource = tTable;
        TestGrid.DataBind();

        if (!String.IsNullOrEmpty(Request.QueryString["edit"]))
        {
            foreach (DataGridItem tRow in TestGrid.Items)
            {
                if (tRow.Cells[0].Text == Request.QueryString["edit"])
                    TestGrid.EditItemIndex = tRow.ItemIndex;
            }
            TestGrid.DataBind();
        }
    }

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

您应该能够启动它(显然将数据网格添加到ASPX中)然后在URL的末尾放置?edit =以使其在编辑模式下打开相关条目.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....