2010-01-04 62 views
0

我們有一個win應用程序,它在Web瀏覽器中顯示Web窗體。 爲了從這個Web表單獲取數據,我們使用了一個隱藏文本框,並使用Web瀏覽器控件的HtmlDocument對象獲取它的文本。 我想抽象出這個帶有這個文本框元素的Web表單,以便其他表單可以使用這個抽象。 我做了一個網頁控制,並把它的文本框。我認爲,如果我把這個控制在我的網頁上它將有文本框。當我運行我的應用程序,我注意到文本框已被呈現,但有它的控制名稱(WebControl $ TextBoxName)和它的id(WebControl_TextBoxName),win應用程序會拋出一個異常,因爲它無法通過它的id(TextBoxName)找到該元素。 所以,這裏是我的問題: 我怎樣才能使一個抽象的Web窗體/ Web控件上有一些元素,我可以用它來使我的最終形式有這些元素呢? (他們的名字和ID不應該改變) 謝謝你的幫助ASP.Net頁面抽象

回答

1

的dotNet 4.0支持靜態ID的,使他們沒有得到錯位,在Client Id Mode

或者讀了,你可以重寫使您的控制輸出,任何你想要的ID標準的HTML隱藏的表單字段,以及那麼還要添加一個自定義屬性,該屬性將返回將隱藏它不是asp.net服務器控件的事實的文本框。

1

儘管我從來沒有在WinForms中使用過瀏覽器控件,但我認爲你想使用的是一個主頁面。假設您在瀏覽器控件中呈現的內容是一個ASPX頁面,請創建一個帶有隱藏文本框的主頁面,以便從中抓取數據,並告訴您想要使用該常見控件的所有頁面主頁。當頁面呈現時,控件ID將是「ctl00_TextBoxName」。沒有辦法繞過ID連接,因爲需要唯一的ID,這是保證ASP.NET的所有嵌套控制能力都具有唯一性的唯一方法。但是,這樣做可以保證在創建的所有繼承Master Page的新表單上始終具有相同的控件。希望有所幫助!

總結(因爲誰讀的段落?):

  • 創建母版頁
  • 將您的共同控制在母版頁
  • 讓你的表格繼承母版頁

您可以閱讀Master Pages如何在MSDN's Documentation中工作。