在c#代码后面实现javascript

时间:2010-01-29 09:50:15

标签: c# code-behind

早上好。

我前面的代码中有以下javascript

     <script  type="text/javascript" src="~/VDSReporting/jquery.js"></script> <script type="text/javascript">

    function ShowImage() {
        document.getElementById('tbxProdAC') 
      .style.backgroundImage = 'url(/images/vds/progress.gif)';

        document.getElementById('tbxProdAC')
                    .style.backgroundRepeat = 'no-repeat';

        document.getElementById('tbxProdAC')
                    .style.backgroundPosition = 'right';
    }

    function HideImage() {
        document.getElementById('tbxProdAC')
                      .style.backgroundImage = 'none';
    } 

</script>

我如何进行“转换”此操作并且仅将其存在于c#代码后面?

请原谅我的无知,我完全超出了我的深度!

2 个答案:

答案 0 :(得分:5)

如果这是您正在显示的进度图像(从图像名称看起来如此),那么您为什么要进行该服务器端?这将破坏进步形象的整个目的。这似乎属于客户端,所以请保留它。

<强>更新

您不需要使用后面的代码来渲染脚本以获取客户端ID。你可以这样做:

function ShowImage() {
    document.getElementById('<%=tbxProdAC.ClientID%>') 
  .style.backgroundImage = 'url(/images/vds/progress.gif)';

    document.getElementById('<%=tbxProdAC.ClientID%>')
                .style.backgroundRepeat = 'no-repeat';

    document.getElementById('<%=tbxProdAC.ClientID%>')
                .style.backgroundPosition = 'right';
}

function HideImage() {
    document.getElementById('<%=tbxProdAC.ClientID%>')
                  .style.backgroundImage = 'none';
} 

在这里,我使用<%=tbxProdAC.ClientID%>来获取控件的id。这比使用后面的代码渲染脚本更具可读性。

答案 1 :(得分:0)

我需要从服务器端运行一些javascript,这对我有用 -

if (!this.ClientScript.IsStartupScriptRegistered("StartDown"))
{
     string scriptString = @"alert(""some javascript"");location.href='MyPage.aspx';";
     this.ClientScript.RegisterStartupScript(Page.GetType(), "StartDown", scriptString, true);
} 

希望这会有所帮助..