我正在使用Gridview。在这里我有2列,即department和emailID。在这个gridview部门是从数据库绑定并在gridview中的linkbutton中显示。
当我点击dept linkbutton时,我想这样做,它会使列emailID可见。 我怎么能这样做?Plaese指导我......
提前致谢。
这是我的网格:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkbtnDept" runat="server" Text='<%#Bind("Department")%>' OnClick="lnkbtnTitle_Click" ></asp:LinkButton>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="50%" />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Panel ID="pnlN24" runat="server" Visible="false">
<asp:Label ID="lblTotal" runat="server" Width="30" Text="abc"></asp:Label>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:1)
了解您将使所有行的列中的所有单元格可见,您可以处理dept按钮的OnClick事件。例如。
<asp:LinkButton ID="lnkDept" OnClick="LinkButton_Click" runat="server" Text="Department" />
代码背后:
protected void LinkButton_Click(Object sender, EventArgs e)
{
gridView1.Columns[1].Visible=true;
}
gridView.Column[1]
是您的电子邮箱列。
答案 1 :(得分:1)
您必须处理events
GridView
控件,尤其是RowCommand
。
public class Demo
{
public string Dept { get; set; }
public string Email { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<Demo> list = new List<Demo>()
{
new Demo() { Dept="A", Email="a@a.com" },
new Demo() { Dept="B", Email="b@b.com" },
};
GridView1.DataSource = list;
GridView1.DataBind();
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "cmd")
{
GridViewRow row = (e.CommandSource as LinkButton).NamingContainer as GridViewRow;
Label email = row.Cells[1].FindControl("email") as Label;
email.Visible = true;
}
}
答案 2 :(得分:1)
当列的visibility属性设置为false时,无法使单元格可见。所以只显示相邻的细胞可见。
你可以使用类型模板字段的唯一一列,然后在该模板字段中创建一个表,并将电子邮件的td设置为可见的false和网格的行命令,因为之前的答案使得标签可见,你应该让你的td可见。
答案 3 :(得分:0)
protected void lnkbtnTitle_Click(object sender, EventArgs e)
{
GridViewRow gvrow = ((LinkButton)sender).Parent.Parent as GridViewRow;
Panel pnlN24 = (Panel)gvrow.FindControl("pnlN24");
pnlN24.Visible = true;
}
这很简单,上面的代码就可以了 我们必须找到LinkButton被点击的哪一行,我们可以从中获取 以下代码。获得GridViewRow后,找到该行中的控件并使其可见
GridViewRow gvrow = ((LinkButton)sender).Parent.Parent as GridViewRow;
我们知道 Control&lt; --- Cell&lt; - GridViewRow&lt; - GridView
例如:
LinkButton&lt; --- Cell&lt; - GridViewRow&lt; - GridView
GridViewRow是单元格的父级,单元格是单元格内的控件的父级(面板)
答案 4 :(得分:-2)
function validateColors(id) {
var grid = document.getElementById("GridView1");
var label = grid.rows[id].cells[6].children[2];
grid.rows[id].cells[6].children[2].style.visibility = "visible";
grid.rows[id].cells[6].children[2].style.visibility = "hidden";
}