2013-05-28 37 views
0

我需要一些關於jQuery的幫助。目前我正在構建具有div的服務器控件。在那個div裏面有一個iFrame。我希望能夠通過jQuery調整div的大小。我通過簡單的樣本完成了這個。在服務器控件中註冊JavaScript代碼

正如我所說,我建立了一個服務器控件,所以我不能在每個頁面上手動添加jQuery。它應該是自動化的,當我拖動我的控制器到設計器表面時,我不必擔心調整Div的大小。

目前我在母版頁中註冊所有相關的* .js文件。我有一個子頁面,它繼承了母版頁。在那頁上我有我的控制權。我無法創建* .js文件並註冊它,因爲我可以擁有多個相同控件的實例。

我在哪裏註冊我的腳本塊?它是如何完成的?

對此的任何澄清將不勝感激。

回答

1

這是服務器控制還是.Ascx服務器控制?如果它是服務器控件,它是從哪種類型的控件繼承而來的?如果從WebControl的繼承,你可以做這樣的事情(這是一個簡化的例子,所以需要在你身邊的一些工作):

Public Class myControl 
    Inherits WebControl 

     Private Sub attachWebResources() 

     Dim styleLink As String = "<link rel='stylesheet' text='text/css' href='{0}' />" 
     Dim location As String = Page.ClientScript.GetWebResourceUrl(Me.[GetType](), "myApp.WebControls.myStyles.css") 
     Dim styleInclude As New LiteralControl([String].Format(styleLink, location)) 
     DirectCast(Page.Header, HtmlControls.HtmlHead).Controls.Add(styleInclude) 

     ScriptManager.RegisterClientScriptResource(Me, Me.GetType, "myApp.WebControls.jquery-1.4.1.min.js") 


     EnsureChildControls() 

    End Sub 


     Protected Overrides Sub OnInit(ByVal e As System.EventArgs) 
     attachWebResources() 
     MyBase.OnInit(e) 
    End Sub 

End Class 

這個例子說明如何包含一個嵌入式的CSS和JS文件你的控制。您需要將JS和CSS文件包含在Web Control Library項目中。然後,您將需要添加一個引用您的JS文件在您AssemblyInfo.vb的文件,如:

<Assembly: Web.UI.WebResource("myApp.WebControls.jquery-1.4.1.min.js", "text/javascript")> 

如果這是一個ASCX Web控件,或任何類型的服務器控件,您可以添加喜歡的代碼這樣的:

Dim myScript As New StringBuilder 
    myScript.Append("function helloWorld(){" & vbCrLf) 
    myScript.Append("alert('hello world')" & vbCrLf) 
    myScript.Append("}" & vbCrLf) 

    Page.ClientScript.RegisterStartupScript(Me.GetType(), "myKey", myScript.tostring, True) 

無論哪種方式,如果您有更多問題,讓我知道哪種類型您正在使用,並張貼到現在爲止您添加相關的代碼。

+0

嗯,我得到你在寫什麼,我已經做了JS功能。我的問題是jQuery代碼。它就像這樣 - $(document).ready(function(){$('#myControl')。draggable();}); - 這段代碼需要在某處動態寫入。在哪裏以及如何?爲了成爲JS文件的一部分,我必須創建整個文件,將其寫入光盤,將其註冊爲資源並將其註冊爲腳本。建議這樣做嗎?我有點迷失在這裏,因爲我對jQuery非常陌生。 – Rob

+0

我不明白爲什麼這會是一個問題。我用JQuery使用了這個方法(第一個例子)。畢竟,jQuery只是javascript。當然,你需要包含你將要使用的各種jQuery庫。儘管如此,你的項目已經包含了它們。你有兩個選擇,像我在第一個例子中所建議的那樣包含那些庫(你也可以用這種方式添加你自己的JS文件),或者讓你的控件的用戶把它們包含在他們的應用程序中(我認爲這是不合理的) 。不過,我並不確定你的擔憂。 – jason