2012-02-06 57 views
0

我希望通过2值来调用我的剧本,但我没有这样做,还给我不能很好地形成JavaScript的服务器标签不规范

asp:LinkButton ID="lnkname" runat="server" Text='<%#Eval("movieTitle") %>' Width='500px' 

CommandName="cmdLink" PostBackUrl='~/videotest.aspx' 

OnClientClick="setSessionValue('video','<%#Eval("movieTitle") %>');" 

回答

4

服务器标签试试这样:

OnClientClick='<%# string.Format("setSessionValue(\"video\", {0});", Eval("movieTitle")) %>' 

甚至更​​好确保正确使用JavaScriptSerializer类编码的电影标题:

OnClientClick='<%# string.Format("setSessionValue(\"video\", {0});", new JavaScriptSerializer().Serialize(Eval("movieTitle"))) %>' 

呀,我AG Ree,那些WebForms是多么可怕的混乱。你可能会为外部化的功能在这个背后的代码:

public string FormatJs(object movieTitle) 
{ 
    return string.Format(
     "setSessionValue(\"video\", {0});", 
     new JavaScriptSerializer().Serialize(movieTitle) 
    ); 
} 

然后:

OnClientClick='<%# FormatJs(Eval("movieTitle")) %>' 
+0

它没有工作,我没有传递给我的脚本> _ < – 2012-02-06 09:15:08