English 中文(简体)
GridView row的基本产出
原标题:Conditional output in GridView row
  • 时间:2009-08-28 09:01:20
  •  标签:

I databing range ofuser Object to GridView control. 最后一栏载有“行动”的基点(编辑、删除):

    <asp:TemplateField HeaderText="Actions">
        <ItemTemplate>
            <a href="Remove.aspx?id=<%# Eval("user_id") %>">Remove</a>
            <a href="Edit.aspx?id=<%# Eval("user_id") %>">Edit</a>
    </ItemTemplate>
    </asp:TemplateField>

但 如果目前对用户物体的约束力与使用权相同(可上网查阅),则我不想首先投入去除行动。 Session User.Id. 与此类似:

    <asp:TemplateField HeaderText="Actions">
        <ItemTemplate>
            <a href="Remove.aspx?id=<%# Eval("user_id") %>">Remove</a>
            if (this.SessionUser.Id <> Eval("user_id") { <a href="Edit.aspx?id=<%# Eval("user_id") %>">Edit</a> }
    </ItemTemplate>
    </asp:TemplateField>

我如何能够这样做?

感谢!

最佳回答

(a) 你们需要书写另一个功能,通过它来使用,并从中获取使用权:

 //in cs file
 protected string GetLink(object o)
 {
     if(!SessionUser.Id.Equals(o)) //or anyother way to compare equality
        return string.Format("<a href="Edit.aspx?id={0}">",0);
     return "";
 }

 //in aspx file

 <ItemTemplate>
        <a href="Remove.aspx?id=<%# Eval("user_id") %>">Remove</a>&nbsp;
        <%# GetLink(Eval("user_id"))%>
 </ItemTemplate>
问题回答

您可以为此而使用“维护者”控制。

<asp:TemplateField HeaderText="Actions">
    <ItemTemplate>
        <a href="Remove.aspx?id=<%# Eval("user_id") %>">Remove</a>
        <a href="Edit.aspx?id=<%# Eval("user_id") %>" runat="server"
           visible= <%# this.SessionUser.Id <> Eval("user_id") %> >Edit</a>
    </ItemTemplate>
</asp:TemplateField>

所有服务器控制,甚至配有跑道的超文本标签,都有<代码>Visible 财产,在最后的超文本不作假时,这种控制从最后的超文本中分离出来。

您可使用社会保障局:

<a style= visible:<%# this.SessionUser.Id <> Eval("user_id") %>  > ... </a>

确保这一点。 Session User. Id是你档案中的公共变量





相关问题
热门标签