加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在asp:GridView中启用就地编辑?

发布时间:2020-12-16 03:37:53 所属栏目:asp.Net 来源:网络整理
导读:如何使用asp:Repeater添加编辑框,并在提交期间读取它们的值? 我有一个asp:GridView,它显示一组只读(即不可编辑的)数据,例如: 如何启用GridView的单元格可编辑,例如(Photoshop Mockup): Note: i didn’t mockup in Photoshop an edit box into every row
如何使用asp:Repeater添加编辑框,并在提交期间读取它们的值?

我有一个asp:GridView,它显示一组只读(即不可编辑的)数据,例如:

如何启用GridView的单元格可编辑,例如(Photoshop Mockup):

Note: i didn’t mockup in Photoshop an edit box into every row and column (cause it was taking too long). You still get the idea.

>我如何说服asp:GridView在每个单元格中显示一个编辑框?
>如果我说服asp:GridView显示一个编辑框,我如何“读取”它们OnClick of Save按钮?

奖金Chatter

我不反对使用asp:Repeater,手动放置< INPUT>控制.我的困惑是关于如何在保存按钮的OnClick期间读取每个输入.虽然我非常乐意使用转发器,并且GridView可能无法实现我想要的转发器唯一的可能性,但这个问题是关于GridView的.

>如果GridView可以做到:很棒;怎么样?
>如果GridView无法做到:这也是一个答案.

解决方法

您是否尝试过设置DataGrid的EditIndex属性?

例:

<asp:GridView runat="server" onrowediting="grdProducts_RowEditing" 
    ID="grdProducts">
    <Columns>
        <asp:CommandField ShowEditButton="True" />
    </Columns>
</asp:GridView>

代码背后

protected void grdProducts_RowEditing(object sender,GridViewEditEventArgs e)
    {
        this.grdProducts.EditIndex = e.NewEditIndex;
        This.BindGrid();
    }

请注意,您必须重新绑定网格

通常您每行保存数据,这意味着每行都有一个编辑链接,进入编辑模式后,会出现一个保存按钮和一个取消按钮,可以保存该特定行的值

使用GridView时,遵循此方法是微不足道的:

protected void grdProducts_RowUpdating(object sender,GridViewUpdateEventArgs e)
    {
        // old values for the current row
        var oldValues = e.OldValues;

        // new (updated) values for the current row
        var newvalues = e.NewValues;

        // Exit edit mode
        this.grdProducts.EditIndex = -1;

        // Update the grid
        this.BindGrid();
    }

在网格标记中添加以下内容:

onrowupdating="grdProducts_RowUpdating"

如果需要在编辑时或以只读模式显示单元格数据时指定自定义控件,请使用网格模板:

<Columns>
        <asp:TemplateField HeaderText="Name">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
      </Columns>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读