【问题标题】:Output static property directly on .aspx page直接在 .aspx 页面上输出静态属性
【发布时间】:2012-08-16 23:31:11
【问题描述】:

我想在 aspx 页面上输出类似的内容(不是代码隐藏):

<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">

Fields.FirstName 是一个静态类。我该怎么做呢?我收到一条错误消息,提示“当前上下文中不存在名称‘字段’”。我错过了什么?我必须在 .aspx 页面上包含一些内容吗?

【问题讨论】:

  • 您是否在 PageLoad() 代码隐藏中调用了 txt1.DataBind()(在使用包含命名空间的全名限定字段之后)?
  • 我没有 - 这有关系吗?我只是输入一个值——如果我输入一个字符串,它就不需要了,对吧?
  • 这很重要,因为它是一个服务器控件。对于非服务器控件,您只需使用 表示法填充它。
  • 如果控件在中继器中怎么办?如何绑定控件?
  • 谢谢!请添加为答案,我将其标记为这样..

标签: c# asp.net static static-members


【解决方案1】:

你可以试试这个:

<input type="text" value="<%=Fields.FirstName %>" id="txt1" />

但是,请记住,它不再是服务器控件。

可以在服务器控件中使用 表示法,但是只有当您从代码隐藏调用 DataBind 时才会填充它们。在外部范围中使用单引号是很习惯的,因为在内部范围中通常需要双引号,如下所示:

<input type="text" value='<%=Fields["FirstName"] %>' id="txt1" />

但如果不需要引号,它也应该像你描述的那样工作:

<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">

只要你在代码后面的某处调用txt1.DataBind()

另请参阅this question 了解更多信息。

【讨论】:

    【解决方案2】:

    使用完整的类名(包括所有嵌套的命名空间)和一个 = 符号,您不是数据绑定(由 # 符号表示)。我经常这样做...

    <%=Namespace.MyStrings.MyConstantString%>
    

    此外,根据您的页面设置方式,您可能必须在响应写入方括号中使用单引号......

    <asp:TextBox ID="..." runat="server" Text='<%=Namespace.MyStrings.MyConstantString%>'></asp:TextBox>
    

    更新:

    超级hacky,但我得到了它的工作......

    <supr:SuprTextBox ID="txt" runat="server" ClientIDMode="Static"></supr:SuprTextBox>
    <div id="preload" style="display:none;"><%=Supr.Strings.ASSET_CONTROL_LOCATION%></div>
    <script type="text/javascript">
        $(function () {
            $('#txt').val($('#preload').html());
        });
    </script>
    

    【讨论】:

    • Fields 类在哪里?
    • 它属于同一个项目。
    • 我的方法在同一个解决方案中调用了一个单独的项目(类库)。您的项目是否有根命名空间(是否为 Web 应用程序)?或者你的类是在 App_Code 文件夹中定义的?
    • @TrueDevelopment 你不能在服务器控件中使用 表示法。
    • 我的错,刚刚测试过它似乎只允许使用数据绑定语法。您可以使用 jquery - 写入 span/div 并在准备好的文档时复制。
    【解决方案3】:

    您需要在后面的代码中或在 aspx 页面上的代码 sn-p 中执行此操作。不能嵌套 asp 标签(&lt;%# %&gt;)不能嵌套在asp:text 元素中。

    【讨论】:

    • 也许我使用了错误的标签 - 基本上我希望能够输出该属性......我该怎么做?>
    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多