将参数传递给客户端事件OnClientClicking时遇到问题。
每当我传递一个Eval参数时,由于某种原因会有回发,即使我在my_function
代码中写了parameters
:
"return false;"
我尝试了不同的东西,包括我在类似问题中找到的一些解决方案。
我也试过这个:
OnClientClick
或使用引号;什么都行不通。
我知道函数甚至没有运行,因为我写了测试:
OnClientClick='<%# "toggleContactDetails("+Eval("ItemId")+"); return false;" %>'
在javascript文件中,不会显示任何消息。
请问任何建议?
答案 0 :(得分:2)
您在问题中有这个样本:
OnClientClick='<%# "toggleContactDetails("+Eval("ItemId")+"); return false;" %>'
这个问题是它会像这样呈现给浏览器:
onclick="toggleContactDetails(Item Name 1); return false;"
这已损坏javascript
(Item Name 1
周围缺少引号),因此当您点击该按钮时,javascript
不会正常运行,这意味着return false;
未运行。这反过来意味着将触发postback
。为了使其正常工作,您必须呈现正确的javascript
:
OnClientClick='<%# "toggleContactDetails(\"" + Eval("ItemId") + "\"); return false;" %>'
只有相关的差异是\"
在几个地方。
答案 1 :(得分:1)
您必须从javascript函数返回一个值。
import os
import shutil
import time
import sys
def update_progress_bar():
print '\b.',
sys.stdout.flush()
print 'Starting ',
sys.stdout.flush()
path = '//server/users/'
keyword = 'monthly report'
for root, dirs, files in os.walk(path):
for name in files:
if keyword in name.lower():
time.sleep(0)
update_progress_bar()
print ' Done!'
使用Javascript:
$form = $this->createForm(ReviewType::class, $review);