我需要从c#代码后面执行Javascript函数

时间:2014-04-21 13:35:38

标签: c# javascript asp.net iis

我需要从后面的c#代码执行Java脚本函数。使用Asp.net服务器控制Repeater并在条件为true时检查条件需要运行java脚本函数,这将转换超链接显示块这是我的javascript函数

function MyFunction(username) {
  document.getElementById("hyp").style.display = "block";
}

这是我的Asp.net代码之后的条件,如果是真的我调用c#代码后面的方法writeText():

<%# Eval("part2").ToString() == "part2" ? writeText(Eval("Albumtitle").ToString(), Eval("Albumtitle").ToString(), inc.ToString()) : writeLink(Eval("Albumtitle").ToString(), Eval("Albumtitle").ToString())%>

protected string writeText(string PageDataId, string AlbumId, string a)
{
    ClientScript.RegisterStartupScript(this.GetType(), "hwa", "MyFunction('Checkjj');", true);
    string html = "";
    html += "";
    return html;
}

这个c#调用javascript函数显示html锚点到开头没有显示的块

这是锚标记

<a id="hyp" name="hyp"  href="#" class="lightbox<%=inc+"b" %>">Part II</a>

1 个答案:

答案 0 :(得分:0)

使用您的html:<a id="hyp" name="hyp" ...添加属性runat="server"。然后在服务器端,您可以访问该对象,就像它是服务器控件一样。

无需在服务器端执行Javascript即可执行所需的操作。

类似于&#34; ItemDataBound&#34;转发器的事件:

  void MyRepeater_ItemDataBound(Object Sender, RepeaterItemEventArgs e) {
string someVar = "someValue"  ;  
           ((HtmlAnchor)e.Item.FindControl("hyp")).Attributes.Add ("css", "lightbox" + someVar);          
       }  

为了使用此活动,请不要忘记添加事件和runat服务器属性:

<asp:Repeater ID="MyRepeater" runat="server" OnItemDataBound="MyRepeater_ItemDataBound">

       <a id="hyp" name="hyp"  href="#" runat="server">Part II</a>

</asp:Repeater>  

您可以在此博客中找到帮助: