GridView LinkBut​​ton OnClientClick。为什么第二个参数是未定义的?

时间:2015-09-28 20:05:15

标签: c# asp.net gridview datagridview

您好我有以下代码,我在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>

感谢您的回复。 感谢

1 个答案:

答案 0 :(得分:0)

由于引号而不是此

,您将两个参数合二为一
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")) %>' 

然后你不需要逃避引号,现在你有两个参数