我有一个奇怪的问题。我将一个文字控件添加到Web表单后,Visual Studio还向自动生成的designer.cs文件添加了一个声明,我可以在代码隐藏文件中访问文字控件。
我还需要将此文字控件的值传递给JavaScript函数,我需要将这个asp:Listeral控件包装在单引号中。一旦我这样做,Visual Studio就会从设计代码中删除它。我该怎么做才能阻止Visual Studio删除声明,或者有更好的方法来实现我想要实现的目标。
<button class="submitBtn" onclick="javascript:JsUtils.submit_answer('<%#Eval('QuestionID')%>,'<asp:Literal ID='testResultId' runat='server'></asp:Literal>');">Submit Answer</button>
答案 0 :(得分:0)
在最基本的水平你可能想要做这样的事情:
<asp:Literal ID='testResultId' runat='server'></asp:Literal>
<button class="submitBtn"
onclick="javascript:JsUtils.submit_answer('<%#Eval('QuestionID')%>,
'<%=testResultID.Text%>');">Submit Answer</button>
然而,这可能远非理想。你说文字值是“设置在代码背后” - 为什么?它将显示在屏幕上,如果您只是尝试通过此功能将数据从服务器传递到客户端,那么为什么要渲染它,只是再次引用它来创建此函数调用?只需将其直接添加到您的功能中,例如像这样的东西:
<button class="submitBtn"
onclick="javascript:JsUtils.submit_answer('<%#Eval('QuestionID')%>,
'<%=SomeProperty%>');">Submit Answer</button>
其中SomeProperty
是页面的字符串属性,它返回您为该文字设置的值。