Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ascx html中访问ascx.cs public bool_C#_Asp.net_Ascx - Fatal编程技术网

C# 在ascx html中访问ascx.cs public bool

C# 在ascx html中访问ascx.cs public bool,c#,asp.net,ascx,C#,Asp.net,Ascx,我试图访问自定义用户控件的html部分中的公共bool。以下是我的代码隐藏的一部分: public partial class ToDoList : System.Web.UI.UserControl { public bool ShowAddNewButton { get; set; } public bool CreateMode { get;set;} protected void Page_Load(object sender, EventArgs e)

我试图访问自定义用户控件的html部分中的公共bool。以下是我的代码隐藏的一部分:

public partial class ToDoList : System.Web.UI.UserControl
{
    public bool ShowAddNewButton { get; set; }
    public bool CreateMode { get;set;}

    protected void Page_Load(object sender, EventArgs e)
    {
    }

}
这是我的html:

<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="ToDoList.ascx.cs" Inherits="ToDoList" %>

<div id="leftNav">
    <asp:HiddenField ID="hfNAVItems" runat="server" />
    <asp:HiddenField ID="hfRequestID" runat="server" />
    <asp:HiddenField runat="server" ID="hdnAllowDragDrop" />
    <div class='nav-header'>
        <div>
            My To-Do List</div>
    </div>
    <ul id="mainNav" class="nav-item-list">
        <li class="nav-item" id="firstNavContainer">
            <div>
                <span class="nav-item-todos">
                    <asp:Label Text="" runat="server" ID="lblfirstSectionHeader" /></span>
                <% if(ShowAddNewButton)
                   { %>
                <asp:Button ID="Button1" runat="server" Text="Add New" CssClass="navaddnewrequest todo-button"
                    OnClick="btnNewToDo_Click" />
                <%} %>
            </div>
            <ul id="todosNav">
                <% if (CreateMode)
                   { %>
                <li class="SelectedNavHeader">New Todo</li>
                <% } %>
                <asp:Repeater runat="server" ID="rptToDoNavItems">
                    <ItemTemplate>
                    <li class="ToDoSelectedNavGroup" runat="server" id="liToDoNavGroupCont">
                        <asp:Literal runat="server" ID="lblToDoNavGroupDisplay" /></li>
                    </ItemTemplate>
                </asp:Repeater>
            </ul>
        </li>
    </ul>
    <ul id="lineItemNav">
        <li class="darkgradient header">My Lists</li>
    </ul>

</div>
我收到以下错误:

当前上下文中不存在名称“ShowAddNewButton” 当前上下文中不存在名称“CreateMode”

这件事让我抓狂。。。看起来很简单。我很高兴知道我遗漏了一些显而易见的东西


提前感谢

另一种管理方法是使用Visible属性。您需要将li设置为runat=server


如果内存可用,就不能将代码隐藏属性和服务器端脚本混合使用。你必须选一个。但是我已经很久没试过了,所以也许你可以

在我看来,假设您能够做到这一点,问题在于服务器端脚本将属性名解释为变量名。您可以尝试在它们前面加上this或base,看看这是否有帮助

<asp:Button ID="Button1" runat="server" Text="Add New" CssClass="navaddnewrequest todo-button"
    OnClick="btnNewToDo_Click" Visible='<%= ShowAddNewButton %>'/>

 ....

<li ID="liNewTodo" runat="server" class="SelectedNavHeader" 
    Visible='<%= CreateMode %>'>New Todo</li>