首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用网格视图OnRowEditing事件处理程序来允许编辑网格视图中的特定单元格?

如何使用网格视图OnRowEditing事件处理程序来允许编辑网格视图中的特定单元格?
EN

Stack Overflow用户
提问于 2019-06-18 12:33:35
回答 1查看 548关注 0票数 0

我有一个网格视图,显示来自客户端上传的文件的数据。上传后,文件将通过几种验证方法进行推送,如果存在数据问题,网格视图中的单元格将以红色高亮显示,并给出简要描述问题的工具提示。最近,我添加了一个“编辑无效条目”按钮,我想编写该按钮,以允许客户端对每行中的错误单元格进行更改,但我不确定如何实际将特定单元格设置为编辑模式。我对前端设计相当陌生(如果您想要调用这个前端),而且我无法在网上找到任何资源来帮助我手动设置网格视图中的单元格(甚至行)来编辑模式。下面的代码循环遍历网格视图中的每一行,如果其任何单元格以红色高亮显示(即其中一个单元格中有错误),则将其设置为可见,并为该行调用OnRowEditing事件。

我查看了GridViewEventArgs类,希望能够对其进行一些更改,但这些属性和方法似乎都没有对我想要实现的目标有任何用处。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (int i = 0; i < grvUpload.Rows.Count; ++i)
{
   if (grvUpload.Rows[i].Cells[0].BackColor.Equals(Color.Red) || grvUpload.Rows[i].Cells[1].BackColor.Equals(Color.Red) || grvUpload.Rows[i].Cells[2].BackColor.Equals(Color.Red) || grvUpload.Rows[i].Cells[3].BackColor.Equals(Color.Red) || grvUpload.Rows[i].Cells[4].BackColor.Equals(Color.Red) || grvUpload.Rows[i].Cells[5].BackColor.Equals(Color.Red))
   {
      grvUpload.Rows[i].Visible = true;
      grvUpload.SetEditRow(i);
   }
   else
   {
      grvUpload.Rows[i].Visible = false;
   }
}

...

protected void grvUpload_RowEditing(object sender, GridViewEditEventArgs e)
{
   // ?
}

我希望行grvUpload.SetEditRow(i)将网格视图中的第一行设置为编辑模式,但我假设我必须在grvUpload_RowEditing方法中这样做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-18 23:08:40

在aspx中,将asp:镶边字段更改为asp:TemplateField,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <asp:TemplateField HeaderText="xxx">
      <ItemTemplate>
          <asp:TextBox runat="server" Style="text-align: left" ID="id" Width="400px"  Text='<%# Bind("columnName") %>'></asp:TextBox>
       </ItemTemplate>
</asp:TemplateField>

然后,当网格视图绑定时,您可以在单击“编辑”按钮后编辑要编辑的单元格,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<asp:TemplateField HeaderText="xxx" >
                <ItemTemplate>
                    //use label show message
                    <asp:Label id="id" runat="server" 
                        Text='<%# Bind("columnName") %>'/>                        
                </ItemTemplate>
                <EditItemTemplate>                   
                    <asp:TextBox runat="server" Style="text-align: left" ID="idT" Width="400px"  Text='<%# Bind("columnName") %>'></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>

在.cs grvUpload_RowEditing方法中,添加以下内容

grvUpload.EditIndex = e.NewEditIndex;//可能再次需要绑定网格视图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56656669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文