【问题标题】:Why Eval does not display label and textbox?为什么 Eval 不显示标签和文本框?
【发布时间】:2013-07-05 20:49:43
【问题描述】:

我从数据库中检索了一些 html 代码,我想在 web 表单中显示这些值。

您可以在下面看到我的代码。它不显示标签和文本框。但是,当我在浏览器中查看 .aspx 页面源时,我可以看到使用 Eval 检索到的标签和文本框。为什么我在页面中看不到标签和文本框?

数据库值:

后面的代码:

using (BurganEntities burganEntities = new BurganEntities())
        {
           List<DynamicField> dynamicFields=(from dynamicField in burganEntities.DynamicField select dynamicField).ToList();
           cdcatalog.DataSource = dynamicFields;
            cdcatalog.DataBind();
        }

aspx:

【问题讨论】:

    标签: c# asp.net eval


    【解决方案1】:

    快速的答案是因为 asp,net 控件是在服务器端编译的,但是您在最终呈现 html 页面上将它们用作文本 - 所以您跳过了此编译,而 asp.net 页面确实如此对他们一无所知。

    解决方案是避免使用 asp.net 控件并使用常规 html 控件。您仍然可以在代码后面获得回报,您可能会错过一些易于使用的功能,但您可以使用其他方式进行工作。

    其他可能的解决方案是读取数据库并动态创建控件。例如,您可以在数据库行上添加一个标志,表示现在创建一个文本框,然后在您后面的代码上动态创建该文本框。

    【讨论】:

      【解决方案2】:

      您的代码只是将&lt;asp:TextBox /&gt; 输出到浏览器;它没有使用 WebForms 处理器对其进行解析以将其转换为 &lt;input /&gt; 元素。

      在您的数据库中,您可能应该存储:

      <input id="txtsdsd" name="txtsdsd" class="textbox" onkeypress="return NumberOnly()" />
      

      然后使用Request.Form() 检索值。

      【讨论】:

      • 感谢您的回答。我试过了,它显示在网络表单上,但我在 Request.Form 中看不到输入 ID 和输入值
      • 如果没有看到正在输出的页面的完整来源以及您所期望的内容,就很难弄清楚可能还需要什么。但是,如果您希望它填充现有数据,则需要将其添加为流程中的另一个步骤。这表明您可能需要重新考虑是应该直接输出input 字段,还是根据来自多个数据库和表单字段的值来构造它们。
      • 其实你的回答在这种情况下是正确的。我可以从 Request.Form 看到输入名称。所以我可以捕捉数据。但是,这是一种解决方法。因为如果我想将 ajaxcontroltoolkit 元素添加到数据库中,它无法到达页面上的 ajaxcontroltoolkit。谢谢。
      【解决方案3】:

      我不确定您是否已经开始编写动态控件,但作为第二个答复的补充,我想提一下有关动态控件的更多资源。

      虽然there is no concept of controls in ASP.NET MVC any longer,你可以关注ASP.NET webform data access页面。

      因为你想在服务器端编译你的代码;在任何回发中,您都会丢失动态内容。所以read this 一切都完成了。

      或者你提到你没有得到文本框的值,请看下面的方法,

      var textBox = FindControl("<id_of_textbox>") as TextBox;
      
      if(textBox != null)
      {
          var textBoxValue = ((TextBox)textBox).Text;
      }
      
      </id_of_textbox>
      

      查看FindControl method at this页面

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 2019-02-17
        相关资源
        最近更新 更多