[英]Call Javascript from Button inside ASP Repeater?
我正在使用ASP中继器。 在<ItemTemplate>
和<AlternatingItemTemplate>
中,除其他标签外,还有3个HTML按钮( <input type="button"...
),它们在单击时会进行不同的javascript / jquery调用。 一切正常。
现在,我想基于绑定到我的Repeater的boolean
动态显示/隐藏这些按钮。 我知道如果我使用的是ASP按钮,那么我可以简单地使用以下内容:
Visible='<%# Eval(bMyBoolean) %>'
我尝试将HTML按钮切换为ASP按钮,但随后无法使javascript调用正常工作。 我知道您可以在每个按钮(在Repeater.ItemDataBound
事件中)后面的代码中连接Javascript调用,但是我不确定如何在我的方案后面的代码中执行此操作。 这是我的一个HTML按钮的示例:
<input type="button" id="myButton" value="Test" onclick="MyJavascriptFunction(this,'<%# CType(Container.DataItem, myClassObject).FirstName%>');" />
在上面的示例中,我将FirstName值(这是我绑定到转发器的类对象的属性)传递给Javascript函数。
在我看来,如果我使用的是ASP中继器,那么使用ASP按钮是有意义的,但是我不知道它是否真的有所作为?
因此,我的问题是 :如何基于绑定到中继器的布尔值动态显示/隐藏ASP中继器中的HTML按钮? 或者,如果这是一个不好的做法,我该如何使用ASP按钮进行javascript调用,就像上面的调用(引用Repeater中的值)一样?
预先感谢您的任何帮助/建议!
您可以根据布尔值动态输出样式信息。 考虑一下:
<itemTemplate>
<input type='button' style='<%# getVisbility(Eval("MyBoolValue")) %>'
value='click me' />
</itemTemplate>
然后在您的代码中,您将拥有:
protected function getVisibility(isVisible as boolean) as string
if isVisible then
return "display:inline; "
else
return "display:none;"
end if
end function
现在,如果您想从asp.net控件执行JavaScript调用,则还有以下选项:
最简单-但绝不是最好的选择,是内联JS:
<itemTemplate>
<asp:button runat="server" onclientClick="return confirm('click to submit');"
text="Click!" />
</itemTemplate>
使用JQuery可以使用更复杂的选项,它可以让您动态捕获click事件,并确定要为其选择的中继器的确切行。 这样的一个例子是:
<itemTemplate>
<asp:button cssclass ='clickMe' runat="server" rel='<%# Eval("MyCol")%>'
text="Click!" />
</itemTemplate>
然后是jQuery代码:
$(".clickMe").click(function(){
var myVal = $(this).attr("rel");
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.