在此小弟先祝各位元旦快乐!呵呵,下面我就说下我的问题了,请各位大大多多照顾!我做了一个页面,在Repeater外面有四个按钮  <ul>
            <li id="Write" runat="server">
                <img src="../img/Add[1].gif" alt="" /><asp:LinkButton ID="lnkWrite" runat="server" OnClick="lnkWrite_Click">填写信息</asp:LinkButton></li>
            <li id="Update" runat="server">
                <img src="../img/FunMenu[1].gif" alt="" /><asp:LinkButton ID="lnkUpdate" runat="server">修改信息</asp:LinkButton></li>
            <li id="Look" runat="server">
                <img src="../img/b_view.png" alt="" /><asp:LinkButton ID="lnkLook" runat="server">查看信息</asp:LinkButton></li>
            <li id="Check" runat="server">
                <img src="../img/s_okay.gif" alt="" /><asp:LinkButton ID="LnkCheck" runat="server">审核信息</asp:LinkButton></li>
        </ul>
Repeater:     <asp:Repeater ID="repReport" runat="server">
                        <ItemTemplate>
                            <tr>
                                <td>
                                    <input id='rad_<%#Eval("ID") %>' type="radio" name="Chose" value='<%#Eval("ID")%>'/>
                                </td>
                                <td>
                                    <%#Eval("StuNumber")%>
                                </td>
                                <td>
                                    <%#Eval("Name")%>
                                </td>
                                <td>
                                    <%#Eval("Thesis")%>
                                </td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
我想要实现的是,
当点击单选按钮时,上面的四个按钮在后台根据数据库里面的内容,和角色来判断它们的显示或隐藏。
(如果数据库中有内容,那个增加按钮就隐藏起来,如果角色为管理员时,增加和修改都隐藏)

解决方案 »

  1.   

    事件里面直接可以判断,然后Visible=false
      

  2.   


    请问下,那个客户端的Radio在改变的时候,如何调用后台的方法的。
      

  3.   

    改用服务器控件RadioButton或RadioButtonList
    并设置它们的AutoPostBack属性为true!!当然用客户端控件也是可以的,通过js来,
    最简单的在页面加一个服务端Button1按钮,Visible设置为false,即不可见!!
    你的代码写在Button1的Click事件下,
    在js中调用这个Button1的click事件的代码是:
    ......
    document.getElementById("Button1").click();
    ......
      

  4.   


    我用这种方法试了一下,我用的是一个LinkButton,但是选中时,那上面没有实现隐藏。   function getvalue(obj) {
                           document.getElementById("radClick").click();
                   }
    我是这样写的,我在Radio的Onclick事件中写的getvalue(this);
      

  5.   

    但是选中时,那上面没有实现隐藏。
    ==========================
    如果你调用是页面本身需要的控件的事件,那就不需要隐藏!!
    如果你要隐藏服务端控件,不能使用Visible,而是通过css来,例如:
    js隐藏LinkButton1,不回发!!document.getElementById("LinkButton1").style.display = "none";
      

  6.   

    你用js要调用哪个服务端控件的事件,
    看看你的js!!
      

  7.   

    <script type="text/javascript" language="javascript" defer="defer">
         function getvalue(obj) {
                document.getElementById("radHid").value =obj.value;
                document.getElementById("radClick").click();
            }    </script>
     <asp:LinkButton ID="radClick" runat="server" Visible="false" OnClick="radClick_Click">LinkButton</asp:LinkButton>
          public void Judge()
            {
                OpenReportBLL ORBll = new OpenReportBLL();
                int Paper_Code =int.Parse( radHid.Value.ToString());
                OpenReportModel ORModel = ORBll.GetRSource(Paper_Code);
                int Role = 1;
                if (Role == 1)
                {
                    Check.Visible = false;
                    if (ORModel == null)
                    {
                        Update.Visible = false;                }
                    else
                        Write.Visible = false;            }
                else
                {
                    Write.Visible = false;
                    Update.Visible = false;
                }
            }        protected void radClick_Click(object sender, EventArgs e)
            {
               Judge();
            }
      

  8.   

    就是在单击Radio的时候调用这个JS,
      

  9.   

    添加type="radio"的点击事件onclick="A(this)">
    通过隐藏域hiddenfield保存角色信息
    document.getElementById('<%=LinkButton1.ClientID%>').style.display = "none"; 
      

  10.   

    调用没什么错哦!!
    自己确认一下是否执行到document.getElementById("radClick").click();还有你是否是母板页??
    若是母板页的话改成:
    document.getElementById("<%= radClick.ClientID %>").click();
      

  11.   

    将此页面 转化为母版页 Master ms=this.Master as Default;
    再查找RadioButton控件
      

  12.   

    还没搞定??
    你现在最大的问题是js不能调用服务端的控件的事件!!
    建议新建一个网页,干净点一点,仅测试这个功能是否能实现!!
    页面两个LinkButton,
    Html:
    <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="return test()">LinkButton1</asp:LinkButton>
    <asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click" style=" display:none;">LinkButton2</asp:LinkButton>c#:
    LinkButton2的click
        protected void LinkButton2_Click(object sender, EventArgs e)
        {
            Response.Write("成功");
        }js:
            function test() {
                document.getElementById("LinkButton2").click();
                return false;
            }点击LinkButton1是否看到了"成功"!
    若看到"成功"说明回发了!!
    若没有说明系统有问题了!!
      

  13.   

    看了你8楼的代码
    <asp:LinkButton ID="radClick" runat="server" Visible="false" OnClick="radClick_Click">LinkButton</asp:LinkButton>
    将Visible="false"改成style=" display:none;"
      

  14.   

    应该不有,只要实现的是单击Radio,实现部分按钮的隐藏(根据后台来判断)
      

  15.   

    对刷新页面 没有要求的话,那直接用服务器端的 asp:radio 引发 回发 ,然后在 相应的事件中做操作即可
      

  16.   

    呵呵,不好意思,我刚才不清楚,试了下后才知道,他不能引起整个页面的回发,要不然好个Radio按钮每次都不有选中。请问下那个Ajax局部刷新是怎么弄的,我只听说过,不有用过,
      

  17.   

    如果你对页面刷新没有要求, 关于 radio 按钮 回发后的选择状态 是有办法解决的
      

  18.   

    在事件中遍历 Repeater 找到radio的改变项
      

  19.   


    XMLHttpRequest实现无刷新验证用户名
    http://blog.csdn.net/Sandy945/archive/2009/05/12/4169870.aspx
      

  20.   

    请问下,我可不可以直接用ASP.net自带的Updatepanel控件,如果可以,
    那么应该如何设置UPDATEPANEL的TRIGGER的CONTROLID指定的ID,我试了下,我直接设置ID为Radio,它报错误说是找不到(Radio在Repeater里面)
      

  21.   

    可以使用Updatepanel但你不能设置ID 为  Radio, 因为你的Radio 是客户端的你应该指定一个服务器端的控件ID,同时 回发是由那个控件引起的你之前的代码<asp:LinkButton ID="radClick" runat="server" Visible="false" OnClick="radClick_Click">LinkButton</asp:LinkButton>改为<asp:Button ID="radClick" runat="server" width='0' OnClick="radClick_Click"></asp:Button>这里就可以指定 ID 为 radClick  由 button 去代替 radio 执行回发操作