【问题标题】:Working with values in web forms scaffolding使用 Web 表单脚手架中的值
【发布时间】:2015-01-26 23:42:44
【问题描述】:

我最近的任务是为我们小组学习 EF 6 和 Web 表单脚手架。大多数事情对我来说都很完美,即使我已经准备好讨厌它,我也没有。有几件事我不能按照我想要的方式工作。当我搭建一些 CRUD 页面时效果很好,但我想在插入页面上设置一些默认值。我可以在构造函数或属性中设置值,但在单击事件添加项目之前,它们不会进入插入页面。我已经尝试了所有我能想到的方法来找出一个适用于我的对象以及动态控件的注释。到目前为止,我无法使任何工作。我实际上可以删除动态控件并添加我自己的控件并将其添加到插入方法中的对象中,但这感觉不对。还有其他方法吗?

具体来说,我要做的事情是根据创建时间后 30 天内的 DateTime 值在某些字段中设置默认日期。我也有州和县的下拉菜单,这些下拉菜单不仅仅与我正在处理的对象相关联。目前我在我的 DAL 中使用 EF6 和 LINQ 来使用 objectdatasources 填充下拉列表,它们工作得很好。我也想将它们作为动态控件挂钩。我知道我需要 [DataType] 属性,但没有可供选择的下拉选项。此外,我不确定如何在州火灾后连接下拉列表以使县火灾发生,以便县会随着每个州的选择而改变。是否有教程可以涵盖这些内容。我到处搜索,找不到任何指导。

谢谢吉米

【问题讨论】:

    标签: c# asp.net entity-framework-6 scaffolding


    【解决方案1】:

    由于似乎没有人知道答案,我想我会列出必要的东西来帮助你,如果你有同样的问题。如果您需要处理动态控件中的数据,您将不得不进行大量转换。您必须在您正在使用的容器中找到动态控件并将其解析为动态控件,然后您需要深入了解该控件的控件模板并找到您需要的文本框等并将其解析为所需的控件类型并抓取或设置其值。如果您需要保持代码安全并且必须通过 Fortify 或其他一些静态分析工具,您还必须对值进行编码,因为 fortify 无法看到它来自已编码的控件。这让你很头疼,继续切换到标准控件并手动将其添加到插件中会容易得多。

    如果你想知道它是如何工作的,那一行代码是这样的。

        ((TextBox)(DynamicControl)fvName.FindControl("DynamicID").TemplateControl.FindControl("TextBox1")).Text;
    

    我亲手写了这篇文章,所以它可能有一些不合适的地方,但这应该会让你走上正轨。

    吉米

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2018-11-30
      • 2011-03-22
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多