2015-05-26 3 views
0

Я пытаюсь вызвать функцию js на HyperLink, которая нуждается в RowID в качестве параметра, и я не могу это сделать!Js вызов функции с параметром на HyperLink

Я попробовал много способов, но всегда получаю null.

Как я могу это достичь?

<script> 
     var popUpObj; 

     function RowClick(filterId) { 

      popUpObj = window.open("voucher.aspx?param=" + filterId + "", 
      "ModalPopUp", 
      "toolbar=no," + 
      "scrollbars=no," + 
      "location=no," + 
      "statusbar=no," + 
      "menubar=no," + 
      "resizable=0," + 
      "width=530," + 
      "height=500," + 
      "left = 450," + 
      "top=130" 
      ); 
      popUpObj.focus(); 
      LoadModalDiv(); 


     } 
    </script> 



<MasterTableView ClientDataKeyNames="RowID" AllowPaging="True" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" CommandItemDisplay="Top" DataKeyNames="RowID" AllowCustomPaging="False" AutoGenerateColumns="False" AllowMultiColumnSorting="True" > 
      <Columns> 
       <telerik:GridBoundColumn DataField="RowID" DataType="System.Int32" FilterControlAltText="Filter RowID column" HeaderText="RowID" ReadOnly="True" SortExpression="RowID" UniqueName="RowID" Visible="False"> 
       </telerik:GridBoundColumn> 

    <telerik:GridTemplateColumn FilterControlAltText="Filter RowID column" UniqueName="RowID" > 
         <ItemTemplate> 
          <asp:HyperLink runat="server" NavigateUrl="javascript:RowClick()" Text="Add voucher link"></asp:HyperLink> 

          </ItemTemplate> 
        </telerik:GridTemplateColumn> 
+0

вы вызываете '' javascript: RowClick() "' без параметров, поэтому убедитесь, что у вас есть параметр filterId' param _undefined_. Как вы пытаетесь передать параметр? – Grundy

+0

Да с javascript: RowClick (RowID) и все еще null – marios

+0

где вы получаете 'RowID'? – Grundy

ответ

0

Для исправить ошибку с Тег сервера не очень хорошо формируется ошибка вы должны использовать одиночные кавычки для значений атрибутов, и сделать NAVIGATE URL в связывании

<asp:HyperLink runat="server" NavigateUrl='<%# string.Format("javascript:RowClick({0})",Eval("RowID"))%>' Text="Add voucher link"></asp:HyperLink> 

Но в случае, когда вам нужно простая связь, мне кажется более эффективным использование только тега, что-то вроде

<a href="javascript:RowClick('<%# Eval("RowID") %>')" >Add voucher link</a> 

, на мой взгляд, легко и читаемо

1

Используйте LinkButton вместо HyperLink. См. Пример ниже.

<asp:LinkButton ID="btn" Text="Add voucher link" runat="server" 
OnClientClick='<%# "RowClick(" + Eval("RowID") + "); return false;" %>'></asp:LinkButton> 
+0

Uncaught SyntaxError: Неожиданный токен < – marios

+0

Отредактировано LinkButtoncontrol. Используйте пример в качестве руководства. – jomargon

+0

still: Невключено ReferenceError: filterId не определен – marios

Смежные вопросы