[英]How to call external javascript method on aspx page in the user control
[英]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.