GridView LinkButton OnClientClick.为什么第二个参数是Undefined

本文关键字:参数 Undefined 第二个 为什么 LinkButton OnClientClick GridView | 更新日期: 2023-09-27 18:14:51

嗨,我有下面的代码,我在LinkButton点击上调用View_Date Javascript函数。OverwriteType是未定义的?

<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参数的值为Undefined。我做错了什么?

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>

感谢您的回复。由于

GridView LinkButton OnClientClick.为什么第二个参数是Undefined

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

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")) %>' 

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