【问题标题】:GridView LinkButton OnClientClick. Why the second parameter is coming as Undefined?GridView LinkBut​​ton OnClientClick。为什么第二个参数是未定义的?
【发布时间】:2015-09-28 20:05:15
【问题描述】:

您好,我有以下代码,我正在点击 LinkBut​​ton 时调用 View_Date Javascript 函数。 OverwriteType 以 UnDefined 的形式出现?

<Columns>
<asp:BoundField DataField="keyId"  HeaderText="Key"  />
<asp:BoundField DataField="keyIdValue"  HeaderText="value" />
<asp:BoundField DataField="overWriteType"  HeaderText="Overwrite" Visible="false" />
<asp:TemplateField HeaderText="Overwrite" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<itemstyle width="5%" />
<asp:LinkButton CssClass="l_link"  ID="lnkView" runat="server"  
DataTextField="overWriteType" 
CommandName="overWriteType"
CommandArgument='<%# Eval("overWriteType") %>'  Text='<%# Eval("overWriteType") %>' 
OnClientClick='<%#string.Format("return view_Data(\"{0},{1}\");", DataBinder.Eval(Container.DataItem, "keyId"), DataBinder.Eval(Container.DataItem, "overWriteType")) %>' 

                                                                            >
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

这是 Javascript 函数。

 function view_Data(keyId, overWriteType) {
                alert(overWriteType);  //This value is undefined
                var podUrl = shipList.options[shipList.selectedIndex].value;
                window.open("OverwriteConfiguration.aspx?KeyId=" + keyId + "&podURL=" + podUrl + "&overWriteType=" + overWriteType, 'ViewChange',
          'height=540,width=750,left=150,top=150,screenX=0,screenY=100');

                return false;
            }

Javascript 的 OverWriteType 参数的值是未定义的。 我做错了什么?

Inspect Element 显示的值如下:

<a onclick="return view_Data("BIOMETRIC.Post.TaskCount,Pod");" id="gvPodKeyValues_lnkView_3" class="l_link" datatextfield="overWriteType" href="javascript:__doPostBack('gvPodKeyValues$ctl05$lnkView','')">Pod</a>

感谢您的回复。 谢谢

【问题讨论】:

  • 您可以右键单击浏览器(即Chrome)中的按钮,然后选择“检查元素”,然后您可以看到该函数是如何调用的,您可以使用/给我们反馈来解决问题

标签: c# asp.net gridview datagridview


【解决方案1】:

由于引号,您将两个参数合并为一个,而不是这个

OnClientClick='<%#string.Format("return view_Data(\"{0},{1}\");", 
                      DataBinder.Eval(Container.DataItem, "keyId"), 
                      DataBinder.Eval(Container.DataItem, "overWriteType")) %>' 

写这个

OnClientClick='<%#string.Format("return view_Data('{0}','{1}');", 
                      DataBinder.Eval(Container.DataItem, "keyId"), 
                      DataBinder.Eval(Container.DataItem, "overWriteType")) %>' 

那么你不需要转义引号,现在你有两个参数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多