gridview根据权限做出edit是否能进行,可以根据情况显示edit模式或者提供edit事件 可以控制.对于不可以编辑的行之后在代码里用普通文字替换一下那个链接就可以了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在RowDataBound写方法,做判断<asp:GridView ID="gvRole" runat="server" AutoGenerateColumns="False" Width="100%" DataKeyNames="RoleID" OnRowCancelingEdit="gvRole_RowCancelingEdit" OnRowDeleting="gvRole_RowDeleting" OnRowEditing="gvRole_RowEditing" OnRowUpdating="gvRole_RowUpdating" OnRowDataBound="gvRole_RowDataBound"> <Columns> <asp:BoundField DataField="RoleName" HeaderText="角色名称" /> <asp:BoundField DataField="Re" HeaderText="描述" /> <asp:TemplateField ShowHeader="False" HeaderText="编辑"> <EditItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="更新"></asp:LinkButton> <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="取消"></asp:LinkButton> </EditItemTemplate> <ItemTemplate> <asp:LinkButton ID="lbtEdit" runat="server" CausesValidation="False" CommandName="Edit" Text="编辑"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="删除"> <ItemTemplate> <asp:LinkButton ID="lbtDelete" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick = "return confirm('确定要删除这行数据吗?');" Text="删除"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="权限"> <ItemTemplate> <asp:HyperLink ID="Right" runat="server" NavigateUrl='<%# Eval("RoleID", "MenuRight.aspx?RoleID={0}") %>' Text="权限"></asp:HyperLink> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>protected void gvRole_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { try { LinkButton button = (LinkButton)e.Row.FindControl("lbtDelete"); button.Visible = base.CheckAuth("RoleIndex.aspx", "lbtDelete");//CheckAuth是我写的一个方法 你可以把自己的方法加到这里 会达到你想要的效果 HyperLink link = (HyperLink)e.Row.FindControl("Right"); link.Visible = base.CheckAuth("RoleIndex.aspx", "Right"); button = (LinkButton)e.Row.FindControl("lbtEdit"); button.Visible = base.CheckAuth("RoleIndex.aspx", "lbtEdit"); } catch { } } else { DataControlRowType rowType = e.Row.RowType; } } 向高手请教?想要深入.NET应该看哪方面的书? javascript控制ModalPopupExtender关闭~~!! 【40分】VS2005用户控件的小问题 我做的网站 为什么前台显示的很快 一进入后台添加信息的页面很慢呢 怎么控制用户自定议控件 拯救中国芯 简体保存到繁体数据库后怎么不变成乱码? access文件读取位置的配置问题。 关于ASP分页 关于TextBox控件的Text属性问题。 请问怎么在内容页中调用母版页中的方法啊? 这句SQL怎么写???
<Columns>
<asp:BoundField DataField="RoleName" HeaderText="角色名称" />
<asp:BoundField DataField="Re" HeaderText="描述" />
<asp:TemplateField ShowHeader="False" HeaderText="编辑">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
Text="更新"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="lbtEdit" runat="server" CausesValidation="False" CommandName="Edit"
Text="编辑"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<asp:LinkButton ID="lbtDelete" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick = "return confirm('确定要删除这行数据吗?');"
Text="删除"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="权限">
<ItemTemplate>
<asp:HyperLink ID="Right" runat="server" NavigateUrl='<%# Eval("RoleID", "MenuRight.aspx?RoleID={0}") %>'
Text="权限"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>protected void gvRole_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
try
{
LinkButton button = (LinkButton)e.Row.FindControl("lbtDelete");
button.Visible = base.CheckAuth("RoleIndex.aspx", "lbtDelete");//CheckAuth是我写的一个方法 你可以把自己的方法加到这里 会达到你想要的效果
HyperLink link = (HyperLink)e.Row.FindControl("Right");
link.Visible = base.CheckAuth("RoleIndex.aspx", "Right");
button = (LinkButton)e.Row.FindControl("lbtEdit");
button.Visible = base.CheckAuth("RoleIndex.aspx", "lbtEdit");
}
catch
{
}
}
else
{
DataControlRowType rowType = e.Row.RowType;
}
}