当我尝试
时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不是问题。似乎是在按钮属性中评估此类语句的方式。
答案 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)
查看您网页的来源,以确切了解写入浏览器的内容。
我看到的一件事是你没有包含引号,所以jcPrint(id)在任何浏览器中都不能用于IE。
我建议不要让你的按钮成为服务器控件(不包括runat = server)。
<button value="my button" click="jpcPrint('<%= this.Controller.JPId %>')" />
有无限的方法可以做到这一点..你也可以创建一个本地函数,而不是一旦你准备好调用asp.net回发函数,如果你需要事后回发。