应该在页面中直接使用哪个控件,还是应该使用Response.Write?

时间:2014-02-28 17:56:24

标签: c# asp.net-4.0 head

我需要在用户控件中输出以下内容....目前在.ascx文件中输出,但我需要在.ascx.cs文件中输出它而不是更改控件。

.ascx文件中的当前代码是:

<link rel="stylesheet" href="<%=MMG.Global.FileHelper.GetCSSVersion("/scripts/jquery-select2/select2.css") %>" />
<link rel="stylesheet" href="<%=MMG.Global.FileHelper.GetCSSVersion("/styles/custom-theme/jquery-ui-1.9.1.custom.css") %>" />
<link href="<%=MMG.Global.FileHelper.GetCSSVersion("/styles/styles.css") %>" type="text/css" rel="stylesheet"  media="all" />
<link href="<%=MMG.Global.FileHelper.GetCSSVersion("/styles/print.css") %>" type="text/css" rel="stylesheet" media="print" />

<link rel="stylesheet" href="<%=MMG.Global.FileHelper.GetCSSVersion("/scripts/jquery-fancybox/jquery.fancybox.css") %>" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<!--<script type="text/javascript" src="/scripts/jquery.stickyfooter.js"></script>
<script type="text/javascript" src="/scripts/modernizr.js"></script>
<script type="text/javascript" src="/scripts/jquery-select2/select2.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.jcarousel.pack.js"></script>
<script type="text/javascript" src="/scripts/jquery.cycle.all.js"></script>
<script type="text/javascript" src="/scripts/bootstrap-tab.js"></script>
<script type="text/javascript" src="/scripts/jquery-ui-1.9.1.custom.min.js"></script>-->

<%--<script type="text/javascript"     src="http://tcadops.ca/consumer/adtagtc.js"></script>--%>
<script type="text/javascript" src="/scripts/adtagtc_old.js"></script>

<!-- Smooth Div Scroll Plugin 
<script type="text/javascript" src="/scripts/jquery-ui-1.8.23.custom.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.kinetic.js"></script>
<script type="text/javascript" src="/scripts/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.smoothdivscroll-1.3-min.js"></script>
<script type="text/javascript" src="/scripts/bootstrap-datepicker.js"></script>
-->
<script type="text/javascript" src="//use.typekit.net/qrs7pfm.js"></script>
<script type="text/javascript">try { Typekit.load(); } catch (e) { }</script>
<!--<script type="text/javascript" src="/scripts/jquery.isotope.min.js"></script>-->
<script type="text/javascript" src="/scripts/jquery-fancybox/jquery.fancybox.pack.js"></script>

<meta name="viewport" content="width=1024" />

但是根据.ascx.cs文件中的语句,它需要更改为不同的<script>标记。如果在if语句中的.ascx.cs文件中使用,我将如何将上述代码更改为其他代码?

我想过Response.Write,但这段代码也有功能。也许有更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:0)

在.ascx文件中:

<% if (someCondition) { %>
    <script>....</script>
<% } 
else { %>
    <script>(Some other script)</script>
<% } %>

然后在您的代码后面(ascx.cs)设置someCondition

的值

答案 1 :(得分:0)

由于您是动态加载的,因此请保持代码清洁并使用ASP.Net提供的约定。您可以在代码隐藏中执行此操作(如果您愿意,也可以在ASCX中执行此操作)。

ClientScriptManager s = Page.ClientScript;
if(somecondition){
  s.RegisterClientScriptInclude("myscript", "[url to script file]");
}else{
  s.RegisterClientScriptInclude("myscript", "[url to other script file]");
}