2

我需要将参数从转发器传递给 javascript 函数。但我不能这样做:

     onclick="myFunction(<%# ((myObject)Container.DataItem).myValue) %>)" 

它说语法错误。

我需要调用myFunction(myValue)javascript函数。并且myValue必须来自

     <%# ((myObject)Container.DataItem).myValue) %>

这样做的正确方法是什么?

4

7 回答 7

1

如果您想将所有内容都写在标记中(而不是在 rowdatabound 或后面的代码中),您可以使用以下语法:

onclick = '<%# "myFunction(" + Container.DataItemIndex + ")" %>'
于 2013-10-27T08:39:13.660 回答
0

如果你传递字符串,试试这个

onclick='<%# string.Format("myFunction(\"{0}\")",((myObject)Container.DataItem).myValue)%>'

否则使用以下...

onclick='<%# string.Format("myFunction({0})",((myObject)Container.DataItem).myValue)%>'
于 2013-09-26T09:01:42.893 回答
0

使用类似这样的东西。根据您的要求修改它。

protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
 {

var jsFunction = String.Format("Javascriptfunctionname('{0}','{1}');", parameter1, parameter2);
Gridcontrol.Attributes.Add("onclick", jsFunction);

}

希望这会帮助你。

于 2013-09-26T09:08:39.283 回答
0

尝试从服务器端添加 onclick,

Control.Attributes.Add("onclick",((myObject)Container.DataItem).myValue)
于 2013-09-26T09:03:33.663 回答
0

您需要做的是添加几个引号:

onclick="myFunction("<%# ((myObject)Container.DataItem).myValue %>")"

这应该适用于您想要实现的目标。

于 2013-09-26T08:56:59.873 回答
0

试试下面的代码。

onclick="javascript:myFunction("<%=((myObject)Container.DataItem).myValue) %>")";
于 2013-09-26T15:40:10.063 回答
-1

你应该使用=而不是#

onclick = "myFunction(<%= ( (myObject)Container.DataItem).myValue ) %>)"

于 2013-09-26T09:03:16.003 回答