使UserControl中的文本框变为只读

本文关键字:只读 文本 UserControl | 更新日期: 2023-09-27 18:05:28

我在UserControl中有两个文本框。如何根据条件将它们更改为readOnly = true/false ?

在我的内容页中,我有以下代码:

<%@ Register TagPrefix="uc1" TagName="item" Src="~/User_Controls/itemDetails.ascx" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent_1" runat="server">
<uc1:item id="ItemList" runat="server"></uc1:item><br />
</asp:Content>

背后的代码:

protected void Page_Load(object sender, EventArgs e)
{
        if (//Some Conditions)
        {
            //turn ItemList.txtItemName = enable read Only
        }
        if (//Some other Conditions)
        {
            //turn ItemList.txtItemPrice = disable read Only
        }
}

在itemdetails . asx .cs中:

    protected void Page_Load(object sender, EventArgs e)
    {
    }        
    public string itemName
    {
        get { return txtItemName.Text; }
        set { txtItemName.Text = value; }
    }
    public string itemPrice
    {
        get { return txtItemPrice.Text; }
        set { txtItemPrice.Text = value; }
    }
    //and get...set... for other controls

使UserControl中的文本框变为只读

创建用户控件ItemDetails.ascx的属性。并将该属性分配给文本框enable属性。

用户控制

public bool EnabledtxtItemName { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
    txtItemName.Enabled = EnabledtxtItemName;
}

现在您可以从添加了用户控件的相应页面访问该属性。

Web页面

protected void Page_Load(object sender, EventArgs e)
{
    ItemList.EnabledtxtItemName = false;
}