gpt4 book ai didi

c# - Gridview RowDataBound 显示每一行的隐藏列

转载 作者:行者123 更新时间:2023-11-30 16:56:47 25 4
gpt4 key购买 nike

我有一个 gridview,如果选择了某个下拉列表项,我只想允许编辑文本框。在我的 RowDataBound 中,我得到了值并决定是否应该对其进行编辑,但是 .Visible 属性没有像我预期的那样工作。使用我的示例数据,我希望第一行和第二行在列中没有文本框,第三行有文本框,第四行没有。任何帮助将不胜感激。

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
Control ctrl = e.Row.FindControl("ddlPriceTypeCode");

if (ctrl != null)
{
DropDownList ddl = (DropDownList)ctrl;
if (ddl.SelectedValue == "UPRC-" || ddl.SelectedValue == "PLEV-0" || ddl.SelectedValue == "PLEV-1" || ddl.SelectedValue == "PLEV-2" || ddl.SelectedValue == "PLEV-3" || ddl.SelectedValue == "PLEV-4" || ddl.SelectedValue == "PLEV-5" || ddl.SelectedValue == "PLEV-6" || ddl.SelectedValue == "PLEV-7")
{
//GridView1.Columns[4].Visible = true;
}
else
{
//GridView1.Columns[4].Visible = false;
}
}
}

最佳答案

通过这种方式,您可以隐藏/显示整个列。 RowDataBound 为每一行触发,因此该列的可见性由最后一行的下拉列表的值给出。

如果仅隐藏/显示 TextBox,您需要做什么,如下所示:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
Control ctrl = e.Row.FindControl("ddlPriceTypeCode");
TextBot txt = (TextBox)e.Row.FindControl("txtID");

if (ctrl != null)
{
DropDownList ddl = (DropDownList)ctrl;
if (ddl.SelectedValue == "UPRC-" || ddl.SelectedValue == "PLEV-0" || ddl.SelectedValue == "PLEV-1" || ddl.SelectedValue == "PLEV-2" || ddl.SelectedValue == "PLEV-3" || ddl.SelectedValue == "PLEV-4" || ddl.SelectedValue == "PLEV-5" || ddl.SelectedValue == "PLEV-6" || ddl.SelectedValue == "PLEV-7")
txt.Visible = true;
else
txt.Visible = false;
}
}

显然,“txtID”是您要隐藏/显示的文本框的 ID。

关于c# - Gridview RowDataBound 显示每一行的隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27490557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com