代码之家  ›  专栏  ›  技术社区  ›  Beatles1692

ASP.NET页抽象

  •  0
  • Beatles1692  · 技术社区  · 16 年前

    我们有一个Win应用程序,它在Web浏览器中显示Web表单。 为了从该Web窗体获取数据,我们使用隐藏的文本框,并使用Web浏览器控件的htmldocument对象获取其文本。 我想对这个具有这个文本框元素的Web表单进行抽象,以便其他表单可以使用这个抽象。 我创建了一个Web控件并将文本框放在上面。我认为如果我将此控件放在我的页面上,它就会有文本框。当我运行应用程序时,我注意到该文本框已经呈现,但其控件名(web control$text box name)和ID(web control_text box name)与win应用程序抛出了一个异常,因为它找不到元素的ID(textbox名称)。 我的问题是: 如何生成一个抽象的Web窗体/Web控件,该控件上有一些元素,并且我可以使用它使最终的窗体上有这些元素?(不应更改其名称和ID) 谢谢你的帮助

    2 回复  |  直到 16 年前
        1
  •  1
  •   Prescott    16 年前

    dotnet 4.0支持静态ID,这样它们就不会被损坏,请继续阅读 Client Id Mode

    或者,可以重写控件的呈现,以使用所需的任何ID输出标准HTML隐藏表单字段,然后添加一个自定义属性,该属性将返回文本框,该文本框将隐藏它不是ASP.NET服务器控件的事实。

        2
  •  1
  •   Ryan Hayes    16 年前

    虽然我从未在WinForms中使用过浏览器控件,但我认为您要使用的是母版页。假设您在浏览器控件中呈现的是一个ASPX页,请创建一个带有要从中获取数据的隐藏文本框的母版页,并告诉所有要打开该公共控件的页使用母版页。当页面呈现时,控件ID将为“ctl00_textbox name”。无法绕过ID连接,因为需要唯一的ID,这是确保具有ASP.NET所有嵌套控制功能的唯一方法。但是,这样做可以确保在继承母版页的每一个新表单上始终具有相同名称的控件。希望有帮助!

    总之(因为谁读段落?)以下内容:

    • 创建母版页
    • 将常用控件置于母版页中
    • 让窗体继承母版页

    您可以阅读母版页的工作原理 MSDN's Documentation .

    推荐文章