我有一个网格视图,显示来自客户端上传的文件的数据。上传后,文件将通过几种验证方法进行推送,如果存在数据问题,网格视图中的单元格将以红色高亮显示,并给出简要描述问题的工具提示。最近,我添加了一个“编辑无效条目”按钮,我想编写该按钮,以允许客户端对每行中的错误单元格进行更改,但我不确定如何实际将特定单元格设置为编辑模式。我对前端设计相当陌生(如果您想要调用这个前端),而且我无法在网上找到任何资源来帮助我手动设置网格视图中的单元格(甚至行)来编辑模式。下面的代码循环遍历网格视图中的每一行,如果其任何单元格以红色高亮显示(即其中一个单元格中有错误),则将其设置为可见,并为该行调用OnRowEditing事件。
我查看了GridViewEventArgs
类,希望能够对其进行一些更改,但这些属性和方法似乎都没有对我想要实现的目标有任何用处。
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
方法中这样做。
发布于 2019-06-18 23:08:40
在aspx中,将asp:镶边字段更改为asp:TemplateField,例如:
<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>
然后,当网格视图绑定时,您可以在单击“编辑”按钮后编辑要编辑的单元格,如下所示
<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;//可能再次需要绑定网格视图
https://stackoverflow.com/questions/56656669
复制相似问题