注册 登录
编程论坛 ASP.NET技术论坛

GridView中显示Panel

hinroe 发布于 2008-06-14 12:17, 1695 次点击
博客文章中设一个密码保护功能,设置完,文章受保护则填入密码Password,如果不受保护,则设密码Password为空NULL,在访问别人博客时,在文章列表GridView中放置两个Panel,一个是有密码显示的内容,一个是没有密码显示的输入密码Panel,这时我需要怎样判断来显示这两个Panel
 请问一下这类问题应该怎么做呀,现在是方法都不会,就是在GridView中通过某个条件判断,进而来显示在ItemTemplate中的不同Panel,如果有相关代码,能不能给我看看,先谢了,项目中,急
6 回复
#2
冰彩虹2008-06-15 00:00
为什么不显示在两个GridView里(一个显示没有密码的,一个显示有密码的)呢?根据登陆者角色设置两个GridView的可见性
#3
hinroe2008-06-15 13:38
哈哈,你就是那个飞天熊吧,很熟悉“冰彩虹”这个名字,以前帮我解决了不少问题,现在项目中,又有很多问题要问,还请多帮忙呢
#4
hinroe2008-06-16 16:00
[bo][un]冰彩虹[/un] 在 2008-6-15 00:00 的发言:[/bo]

为什么不显示在两个GridView里(一个显示没有密码的,一个显示有密码的)呢?根据登陆者角色设置两个GridView的可见性

可是文章的密码是作者自己设置的,是只给知道密码的人看,跟登录者角色没关系,是在新建文章时就添加了密码的
#5
冰彩虹2008-06-17 22:00
知道密码的人输入了密码,你就把相应的东东显示出来,否则就免谈呀
#6
hinroe2008-06-18 10:53
[bo][un]冰彩虹[/un] 在 2008-6-15 00:00 的发言:[/bo]

为什么不显示在两个GridView里(一个显示没有密码的,一个显示有密码的)呢?根据登陆者角色设置两个GridView的可见性

可是有的文章按发表的时间排列,可能这编文章加密码了,紧接着的下篇文章就没有加密码了,分两个GridView,那不是将有密码的放到一起,没有密码的放到一起,这样就不合理了啊,您是这个意思吗???
#7
hinroe2008-06-25 15:07
取GridView中文本框的值
我把文章在列表中按它们是否被加密码判断完显示哪个Panel了,然后就是在有密码的Panel中向TextBox输入密码,点击确认按钮,代码如下,问题是取不出来TextBox中的值,我的这两个Panel(有密码显示的和没密码显示的Panel)是直接放在GridView的ItemTemplate中的,Colunm0,我做了试验,Panel放在规律的列中,比如Colunm3中,我就用Cells[2]就能取出来,那我这种情况应该怎样处理呢????
protected void btnCommit_Click(object sender, EventArgs e)
    {
        Button bt1 = sender as Button;
        if (() == "bb")
        {
            foreach (GridViewRow gr in GridView1.Rows)
            {
              TextBox tb = (TextBox)gr.Cells[0].FindControl("txtPass");      
                string pass = ();
                string password = tb.Text.Trim();
                Panel p1 = (Panel)gr.Cells[0].FindControl("pPassNone");
                Panel p2 = (Panel)gr.Cells[0].FindControl("pPass");
                if (password == pass)
                {
                    p1.Visible = true;
                    p2.Visible = false;
                }
            }
        }
    }
1