簡體   English   中英

ASPX頁面中的用戶控件不適用於javascript

[英]User Control in ASPX page not working with javascript

我有一個非常簡單的用c#編寫並編譯成dll的用戶控件。 我使用對象標記將該控件放入aspx頁面,然后嘗試在javascript中對其進行處理。 我還有其他工作正常的控件,但是由於某種原因,這個控件不起作用。 這是代碼:


using System.Windows.Forms;

namespace FileBrowser {
    public partial class theBrowser : UserControl {
        public theBrowser() {
            InitializeComponent();
            MessageBox.Show("TBI");
        }
        public string theFile = "foobar";
    }
}

這是網頁代碼:

   <object id='fileBrowserControl' classid='http:FileBrowser.dll#FileBrowser.theBrowser'>
            <span>File control did not initialize.</span>

然后

   <script type="text/javascript">
  $(function() {
var mfc = $('#fileBrowserControl')[0];
alert(mfc.theFile);
  });

當我加載頁面時,MessageBox顯示構造函數已觸發,但是javascript警報為組件字符串提供了“未定義”。 這是精簡版,在實際版本中,我也無法從javascript調用公共函數。 我收到錯誤消息:“對象不支持此屬性或方法。”

我顯然缺少了一些非常簡單的東西,但是我看不到。 謝謝你的幫助。 喬恩

是的,ASP.NET托管代碼不會自動掛接到客戶端腳本中,您必須自己進行連接。 我的建議是:

1)將您的UserControl創建為Web UserControl

2)在您的aspx頁上注冊: http : //msdn.microsoft.com/zh-cn/library/sbz9etab.aspx

3)在用戶控件的代碼隱藏之后,使用以下方法將“ theFile”屬性值推入控件的腳本中:

Page.ClientScript.RegisterStartupScript(Page.GetType(),"inject","var theFile='" + this.theFile + "';",true);

4)然后,您可以使用“ theFile”變量在JavaScript中訪問該值

解決了! 感謝您的輸入。

這是一篇展示如何的文章: http : //www.olavaukan.com/2010/08/creating-an-activex-control-in-net-using-c/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM