我该怎么做OnClientClick =“jpcPrint(<%= this.Controller.JPId%>);”...这样它的工作原理

时间:2010-06-22 01:11:56

标签: asp.net

当我尝试

OnClientClick="jpcPrint(<%= this.Controller.JPId %>);"

表示按钮,&lt;%= this.Controller.JPId%&gt;字面意思是放入html而不是被评估。我如何编写上面的某些版本,以便html读取:

onclick="jpcPrint(49);"
例如,

而不是

onclick="jpcPrint(<%= this.Controller.JPId %>);"

&lt;%= this.Controller.JPId%&gt;当放置在页面上的其他位置时,包括在此按钮上方的网格视图中,评估完美。例如,这很好用:

<cc1:AutoCompleteExtender ID="Autocompleteextender1" MinimumPrefixLength="4" CompletionInterval="1000"
                CompletionSetCount="10" ServiceMethod="GetCompletionList" ContextKey="<%# this.Controller.JPId %>"
                TargetControlID="txtLKey" runat="server" CompletionListCssClass="jpcKeyList" >

所以this.Controller.JPId不是问题。似乎是在按钮属性中评估此类语句的方式。

2 个答案:

答案 0 :(得分:0)

您可以在页面或控件后面的代码中创建一个函数,然后可以调用该函数

示例:

返回一个简单的值

在背后的代码中

protected string GetJPCPrint()
{
 return "jpcPrint(" & this.Controller.JPId.ToString() & ");";
}

在html代码中

OnClientClick="'<%= GetJPCPrint() %>'"

在绑定控件(网格等)中

protected string SourceValue(object data)
{
 string value = "";
if (data != null)
{
 BusinessLayer.Comment comment = (BusinessLayer.Comment)data;
 value = comment.OtherComment.Source.Name;

}
return value;
}

在html代码中

Text='<%# SourceValue(Container.DataItem) %>'

我希望它可以帮到你。

答案 1 :(得分:0)

  1. 查看您网页的来源,以确切了解写入浏览器的内容。

  2. 我看到的一件事是你没有包含引号,所以jcPrint(id)在任何浏览器中都不能用于IE。

  3. 我建议不要让你的按钮成为服务器控件(不包括runat = server)。

    <button value="my button" click="jpcPrint('<%= this.Controller.JPId %>')" />
    

    有无限的方法可以做到这一点..你也可以创建一个本地函数,而不是一旦你准备好调用asp.net回发函数,如果你需要事后回发。