c# - 如何在编辑单击时从gridview隐藏列?
问题描述
“我正在使用asp.net gridview,当用户单击编辑按钮时,下拉列表列应该隐藏。我应该怎么做才能让它隐藏?我附上了下面的代码。gridview包含学生数据,gridview将根据用户选择的分类数据。我尝试在 OnRowDataBound 上隐藏该列,但它对我不起作用。有什么方法可以隐藏特定列 OnRowEditing 事件”
<asp:GridView ID="GridView1" runat="server" DataKeyNames="id"
CssClass="table table-bordered table-striped"
AutoGenerateColumns="False"
HorizontalAlign="Center" CellPadding="4"
EmptyDataText="No Record Found....."
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating"
ForeColor="#333333"
GridLines="None"
OnPageIndexChanging="OnPageIndexChanging" PageSize="15"
AllowPaging="true" >
<PagerSettings Position="Bottom" />
<AlternatingRowStyle BackColor="White"
ForeColor="#284775"
/>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkRow" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sr.No">
<ItemTemplate>
<asp:Label ID="lblId" runat="server"
Text='<%#Container.DataItemIndex+1%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblFullName" runat="server"
Text='<%#Eval("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ack">
<ItemTemplate>
<edititemtemplate>
<asp:DropDownList
ID="Drpacknowledgement" AutoPostBack="True"
onselectedindexchanged="Drpacknowledgement_SelectedIndexChanged"
runat="server">
<asp:ListItem>--Select--</asp:ListItem>
<asp:ListItem>Received</asp:ListItem>
<asp:ListItem>Reject</asp:ListItem>
</asp:DropDownList>
</edititemtemplate>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Edit/Update">
<ItemTemplate>
<asp:LinkButton ID="LkB1" runat="server"
CommandName="Edit">Edit</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="LkB2" runat="server"
CommandName="Update">Update</asp:LinkButton>
<asp:LinkButton ID="LkB3" runat="server"
CommandName="Cancel">Cancel</asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Codebehind:
protected void GridView1_RowEditing(object sender,
GridViewEditEventArgs
e)
{
try
{
string Id =
GridView1.DataKeys[e.NewEditIndex].Value.ToString();
GridView1.EditIndex = e.NewEditIndex;
ViewState["Id"] = Id;
EditRecord();
}
catch (Exception ex)
{
}
}
解决方案
如果我正确理解了您的问题,我认为这可以解决问题
protected void GridView1_DataBound(object sender, EventArgs e)
{
if (GridView1.EditIndex > -1)
GridView1.Columns[5].Visible = false;
else
GridView1.Columns[5].Visible = true;
}
推荐阅读
- javascript - 重新加载页面时多次调用 ComponentDidMount
- android - 我怎样才能画出这个形状?
- python - 从字符串中删除特定字符
- java - 即使在设置 PATH 后,Java 也无法在 cmd 和 ide 上运行
- javascript - node js /foo route cant res.send 值到前端
- ios - Swift Firebase/Firestore - 数组是否仅计为 1 次读取
- c# - .NET Core 使用 MongoDb 配置 OpenIddict
- c++ - 将依赖名称显式标记为类型名和模板的奇怪之处
- python - 如何获取元素的索引
- python - 使用 dict 在 python 中找到 sum=0 的列表中所有可能的组合对