[ASP.NET][C#][GridView]aspx引用.cs上的public 屬性值 / 變數值;判斷使用者,給予能否修改欄位的權限。

  • 150
  • 0

.

.cs這樣寫(假設使用者資訊是裝在Session裡面): 

    private string User
    {
        get
        {
            return Convert.ToString(Session["User"] ?? "");
        }
    }

    /// <summary>
    /// //只有指定的登入者可以修改建立時間
    /// </summary>
    public bool AllowModifyCreateDate
    {
        get
        {
            return User == "ABC123";
        }
    }
	
	//以上是屬性。也可以用public變數,例如:
	//public bool AllowModifyCreateDate = true;

在.aspx上這樣引用(本例是用在GridView Data Binding時,判斷使用者,給予能否修改"建立時間"這個欄位):

<asp:GridView ID="gvRec" runat="server">
	<Columns>
		<asp:TemplateField HeaderText="Create Date&lt;br/&gt;建立時間">
			<ItemTemplate>
				<asp:Label ID="lblCreateDate" runat="server" Text='<%# Convert.ToDateTime(Eval("CreateDate")).ToString("yyyy-MM-dd HH:mm:ss") %>'></asp:Label>
			</ItemTemplate>
			<EditItemTemplate>
				<asp:Label ID="lblCreateDate" runat="server" Text='<%# Convert.ToDateTime(Eval("CreateDate")).ToString("yyyy-MM-dd HH:mm:ss") %>'
					Visible='<%# AllowModifyCreateDate?false:true %>' />
				<asp:TextBox ID="txtCreateDate" runat="server" Text='<%# Convert.ToDateTime(Eval("CreateDate")).ToString("yyyy-MM-dd HH:mm:ss") %>'
					Visible='<%# AllowModifyCreateDate?true:false %>' />
			</EditItemTemplate>
		</asp:TemplateField>
        <!--其他欄位...-->
	</Columns>
</asp:GridView>