c# - 如何在asp.net c#中禁用基于特定值和特定用户角色的编辑按钮?
问题描述
我真的需要这个查询的帮助。一直在尝试,没有成功。这是场景和查询:
我有一个带有信息的表单,我想要完成的是根据特定的下拉列表(ItemStatus)值禁用编辑模式(Edit Link Button),即:当ItemStatus损坏时|| Discarded && UserRole not in (' Sys Admin ' || ' App Admin ') 用户不应该能够编辑表单。
尝试了它的第一个方面,即ItemStatus并且在单击Edit时仍然可以编辑表单。感谢帮助。
ASP:
<asp:TemplateField HeaderText="Item Status" SortExpression="ItemStatus">
<EditItemTemplate>
<asp:DropDownList ID="ItemStatusEd" runat="server" DataSourceID="ItemStatusEdDS"
DataTextField="ItemStatus" DataValueField=" ItemStatus" selectedvalue='<%# Bind("Status") %>' >
</asp:DropDownList>
<asp:RequiredFieldValidator ID="StatusEdRFV" runat="server" ControlToValidate="ItemStatusEd" ErrorMessage="Item Statusis Required" ForeColor="Red"
ValidationGroup="RecEd">*</asp:RequiredFieldValidator>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="ItemStatusIns" runat="server" DataSourceID="ItemStatusDS"
DataTextField="ItemStatus" DataValueField="ItemStatus"
selectedvalue='<%# Bind("Status") %>' AppendDataBoundItems="true" Width="190px">
<asp:ListItem Selected="True" Value="">Select Item Status</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="StatusInsRFV" runat="server" ControlToValidate="StatusIns"
ErrorMessage="Item Status is Required" ForeColor="Red" ValidationGroup="RecIns">*</asp:RequiredFieldValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Bind("Status") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:SqlDataSource ID="ItemStatusEdDS" runat="server" ConnectionString="<%$ ConnectionStrings:PMAConStr %>"
SelectCommand="select [ID], [ItemStatus] from [ItemStatusTbl] where ([Status] = 'A')">
</asp:SqlDataSource>
背后的代码(C#):
if (e.CommandName == "Edit")
{
try
{
DropDownList ItemStatusEd = new DropDownList();
StatusEd = (DropDownList)ItemInfoDet.FindControl("ItemStatusEd"); /* without these 2 lines of code here it will not find the control ItemStatusEd*/
if (ItemStatusEd.SelectedValue == "Condemned/Scrapped" || ItemStatusEd.SelectedValue == "Written Off")
{
ItemStatusEd.Enabled = true;
}
else
{
ItemStatusEd.Enabled = false;
}
}
catch (Exception exc)
{
lblMessage.Text = "<img src='../Stylesheet/images/warning.gif' alt='Error!' width='24' height='24' style='float: left; margin: -5px 10px 0px 0px; ' /> <span style='font-weight:bold; color:Red;' >" + exc.Message + "</span> <br />";
lblMessage.Visible = true;
}
}
解决方案
推荐阅读
- javascript - 当图像源是缩略图图像时如何调整图像大小
- mysql - 在创建 SQL 语句时需要帮助
- axapta - AX 2012 Group by 与公用表
- intellij-idea - IntelliJ IDEA 插件,用于最近的搜索项目
- laravel - 访问根 URL Laravel 时如何重定向
- django - 如何修复名称'fieldname'未在 django admin.py 中定义
- laravel - 管理员登录后如何重定向参考
- java - 二进制 XML 文件第 50 行:膨胀类片段时出错
- python - 为什么我得到 Python IOError: [Errno 13] Permission denied on writing to a file?
- c++ - 无法将数据从 Zeromq 客户端发送到 TCP 服务器