如何使用Eval将Javascript函数与OnClientClick事件绑定?

ppp*_*ppp 8 javascript asp.net eval onclientclick

我的链接按钮 -

<asp:LinkButton runat="server" ID="lbtnEdit" Text="edit" OnClientClick="javascript:msgDisp('<%# Eval(LocationId).toString() %>')" />
Run Code Online (Sandbox Code Playgroud)

和javascript msgDisp是 -

<script type="text/javascript" language="javascript">
    function msgDisp(lid) {            
        alert(lid);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但它不是在pop中使用LocationId,而是整个字符串<%#......%>在弹出消息中是comin.如何在javascript中传递Eval值.

lin*_*lnk 13

您可以OnClientClick在代码括号中构建一个字符串的全部内容,它将像您期望的那样输出.

<asp:LinkButton runat="server" ID="lbtnEdit" Text="edit" 
    OnClientClick='<%# "msgDisp(" + Eval("LocationId") + ");" %>' /> 
Run Code Online (Sandbox Code Playgroud)

这假设LocationId是一个有效数字 - 在呈现时没有引号来包装你的值,所以输出类似的东西msgDisp(hello);会破坏.我不知道如何以这种方式解决这个问题,所以如果你必须这样做,我建议你OnClientClickItemDataBound活动期间设置服务器端.这是父母是Repeater控件的地方.

protected void notesRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    MyClass item = (MyClass)e.Item.DataItem;
    LinkButton lbtnEdit = (LinkButton)e.Item.FindControl("lbtnEdit");
    lbtnEdit.OnClientClick = string.Format("msgDisp('{0}');", item.LocationId);
}
Run Code Online (Sandbox Code Playgroud)