這是服務器控制還是.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)
無論哪種方式,如果您有更多問題,讓我知道哪種類型您正在使用,並張貼到現在爲止您添加相關的代碼。
嗯,我得到你在寫什麼,我已經做了JS功能。我的問題是jQuery代碼。它就像這樣 - $(document).ready(function(){$('#myControl')。draggable();}); - 這段代碼需要在某處動態寫入。在哪裏以及如何?爲了成爲JS文件的一部分,我必須創建整個文件,將其寫入光盤,將其註冊爲資源並將其註冊爲腳本。建議這樣做嗎?我有點迷失在這裏,因爲我對jQuery非常陌生。 – Rob
我不明白爲什麼這會是一個問題。我用JQuery使用了這個方法(第一個例子)。畢竟,jQuery只是javascript。當然,你需要包含你將要使用的各種jQuery庫。儘管如此,你的項目已經包含了它們。你有兩個選擇,像我在第一個例子中所建議的那樣包含那些庫(你也可以用這種方式添加你自己的JS文件),或者讓你的控件的用戶把它們包含在他們的應用程序中(我認爲這是不合理的) 。不過,我並不確定你的擔憂。 – jason