リンクされた.jsファイルに変数を渡すことは可能ですか?私はこれを試しました:
<sf:JsFileLink ID="JQueryLoader" runat="server" ScriptType="Custom" FileName="~/Files/Scripts/rotatorLoader.js?timeout=1000" />
しかし、firebugは、タイムアウトが定義されていないことを教えてくれます。その.jsファイルのコードは次のとおりです。
$(document).ready(function() {
$("#rotator > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", timeout, true);
});
私が<sf:JsFileLink ... />
タグを使用しているのは、私が作業しているWebサイトがsitefinityを利用しており、このタグを使用して外部の.jsファイルをロードできるためです。
アップデート:
javascriptページをエミュレートするaspxページを作成することで、インクルードを「だます」ことができました。
<%@ Page Language="C#" %>
<%
Response.ContentType = "text/javascript";
Response.Clear();
string timeout;
try
{
timeout = Session["timeout"].ToString();
}
catch
{
timeout = "4000";
}
%>
$(document).ready(function() {
$("#rotator > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", <%=timeout %>, true);
});
そして、ユーザーコントロールページで:
[DefaultProperty("BannerTimeout")]
public partial class Custom_UserControls_TabbedRotator : System.Web.UI.UserControl
{
[Category("Configuration")]
[Description("Sets the rotation timeout, in seconds.")]
[DisplayName("Banner Timeout")]
public int BannerTimeout { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
Session.Add("timeout", (BannerTimeout*1000));
}
}
これは私が探していたものを達成しました、そして多分この方法は他の誰かを助けることができます。