在线等.请高手帮忙------我想在C#代码中page_load事件里设置一个gridview列中的命令是否可见

jin20000 2008-12-23 04:50:18
RT

在线等.请高手帮忙------我想在C#代码中page_load事件里设置一个gridview列中的命令是否可见

设置这里

<cc1:ExGridView ID="dgList" runat="server" AutoGenerateColumns="False" AllowSorting="True" OrderCellIndex="0" UseAccessibleHeader="False" OnSorted="dgList_Sorted" UseAutoEmptyDataTemplate="True" UseComplexSearch="False" OnRowDataBound="dgList_RowDataBound" OnRowCommand="dgList_RowCommand">
<Columns>
<asp:BoundField HeaderText="序号" />
<asp:TemplateField HeaderText="操作">
<itemtemplate>
<cc2:RoleButton id="rbProduct" runat="server" Text="查看产品" Visible= CssClass="btn6_out" OverCss="btn6_over" CommandArgument='<%# Eval("ID") %>' CommandName="ViewPro">
</cc2:RoleButton>
<cc2:RoleButton id="rbManu" runat="server" Text="查看生产企业" CssClass="btn6_out" OverCss="btn6_over" CommandArgument='<%# Eval("ID") %>' CommandName="ViewManu"></cc2:RoleButton>
<cc2:RoleButton id="rbSender" runat="server" Text="查看配送企业" CssClass="btn6_out" OverCss="btn6_over" CommandArgument='<%# Eval("ID") %>' CommandName="ViewSender"></cc2:RoleButton>
</itemtemplate>
</asp:TemplateField>
</Columns>
</cc1:ExGridView>

想在page_load事件里设置"查看产品""查看生产企业""查看配送企业"的可见
...全文
122 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
首先你要设置一个在页面上可以维持自身状态的属性:

    protected bool 查看产品Enabled
{
get
{
object x = ViewState["查看产品enabled"];
return x != null && (bool)x;
}
set
{
ViewState["查看产品enabled"] = value;
}
}


然后你不是要界面依赖于数据而变化吗?要在你的界面声明:

<cc2:RoleButton id="rbProduct" runat="server" Text="查看产品" Visible="<%# 查看产品Enabled %>" CssClass="btn6_out" OverCss="btn6_over" CommandArgument='<%# Eval("ID") %>' CommandName="ViewPro">
</cc2:RoleButton>


这样,只要被绑定(dgList.DataBind();),就会起作用。

其实我总是觉得好像在csdn上给asp.net最基本的编程语法启蒙一样,而遇到的高级问题就不多。我很奇怪,难道大家看的asp.net书真的那么落后吗?!对于这类快速设计和轻松实现功能的问题,大多数人都给出非常曲折的解决方案,究其原因是许多人传播一种观念:写一大堆代码来炫耀技术有多好。我给你说个真正的经验,真正好的技术是实战的、直观的,不需要写一大堆代码,不需要你动不动就去想“在c#代码中page_load时间里设置......”。在我写的很复杂的动态页面中,很大的项目中,page_Load中基本上都没有什么代码,即使有往往也就1、2行代码而已。
niuniuhuang 2008-12-23
  • 打赏
  • 举报
回复
绑定后
foreach (GridViewRow drv in gv_user.Rows)
{
RoleButton rbProduct = (RoleButton)drv.FindControl("rbProduct");
RoleButton rbManu = (RoleButton)drv.FindControl("rbManu");
RoleButton rbSender = (RoleButton)drv.FindControl("rbSender");
rbProduct.Visible = false;
rbManu.Visible = false;
rbSender.Visible = false;
}
或者在RowDataBound事件里面写
magicbacon 2008-12-23
  • 打赏
  • 举报
回复
在RowDataBound事件,用FindControl找到控件,设置其visible属性~
jin20000 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sprc_lcl 的回复:]
C# codeprotectedvoidGridView1_RowDataBound(objectsender, GridViewRowEventArgs e)
{if(e.Row.RowType==DataControlRowType.DataRow)
{
e.Row.FindControl("rbProduct").Visible=false;
e.Row.FindControl("rbManu").Visible=false;
}
}
[/Quote]

这个能行,谢谢啦,结贴了
sprc_lcl 2008-12-23
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.FindControl("rbProduct").Visible = false;
e.Row.FindControl("rbManu").Visible = false;
}
}
niuniuhuang 2008-12-23
  • 打赏
  • 举报
回复
可以但你要在绑定后设置
{
this.gv_user.DataSource = ds.Tables[0];
this.gv_user.DataBind();
//在这里设置
}
jin20000 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinaicm 的回复:]
把操作做成3个模板列
然后通过.gridview.column[列索引].visible = false 来设置.

[/Quote]
命令只能放在一个列里,在线等啊
jin20000 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 magicbacon 的回复:]
C# codeprotectedvoiddgList_RowDataBound(objectsender, GridViewRowEventArgs e)
{
e.Row.Cells[1].Attributes.Add("style","display:none");
}
[/Quote]
我在这里写的话,我如何设置我要隐藏的命令呢,我要的是,设置"查看产品""查看生产企业""查看配送企业"这3个命令里的单个命令的可见

等...
chinaicm 2008-12-23
  • 打赏
  • 举报
回复
把操作做成3个模板列
然后通过.gridview.column[列索引].visible = false 来设置.
phper2008 2008-12-23
  • 打赏
  • 举报
回复
因为这是数据绑定控件,你在绑定前设是没有用的,设置了还是回显示出来!

刚才就遇到问这个问题差不多的帖子,他想在排序的时候换了图片,可是怎么换都是不变!原因是执行了变图片的代码,可是绑定又重新赋值了!

我建议你还是在OnRowDataBound里做判断!
magicbacon 2008-12-23
  • 打赏
  • 举报
回复
protected void dgList_RowDataBound(object sender, GridViewRowEventArgs e)   
{
e.Row.Cells[1].Attributes.Add("style", "display:none");
}
sprc_lcl 2008-12-23
  • 打赏
  • 举报
回复
不能..
要在_RowDataBound事件中设

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧