2010-06-03 3 views
0

У меня есть небольшой вопрос, который должен быть очень легким для экспертов jquery. Я пытаюсь следовать за http://aspdotnetcodebook.blogspot.com/2010/01/page-languagec-autoeventwireuptrue.html, чтобы иметь возможность выполнить действие по строке сетки с двойным щелчком. Я могу перенаправить на другую страницу (как показано в примере), но я не могу вызвать $ (this) .find («a»). Click(); стрелять. Ниже приведена моя разметка GridView.

<asp:GridView ID="gvCustomers" runat="server" DataSourceID="odsCustomers" CssClass="datagrid" 
     GridLines="None" AutoGenerateColumns="False" DataKeyNames="Customer_ID" PageSize="3" 
     AllowPaging="True" AllowSorting="True" OnRowCommand="gvCustomers_RowCommand" 
     OnRowDataBound="gvCustomers_RowDataBound"> 
     <Columns> 
      <asp:BoundField DataField="Customer_ID" HeaderText="ID" ReadOnly="true" Visible="false" /> 
      <asp:BoundField DataField="Customer_FirstName" HeaderText="First Name" ReadOnly="true" /> 
      <asp:BoundField DataField="Customer_LastName" HeaderText="Last Name" ReadOnly="true" /> 
      <asp:BoundField DataField="Customer_Email" HeaderText="Email" ReadOnly="true" /> 
      <asp:BoundField DataField="Customer_Mobile" HeaderText="Mobile" ReadOnly="true" /> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="lnkButton" runat="server" CommandName="showVehicles" CommandArgument='<%# Eval("Customer_ID") %>' 
         ></asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
     <EmptyDataTemplate> 
      Sorry No Record Found. 
     </EmptyDataTemplate> 
    </asp:GridView> 

Я просто не могу заставить его работать как автор предложил: /* или вы могли бы иметь скрытый LinkButton в строке (Text = «» или не установлен), что вы могли бы вызвать. Убедитесь, что вы установили CommandName = «Кое-что» и CommandArgument = «RecordId» */

на OnCommand ссылкиButton, у меня есть метод на стороне сервера, который я хотел бы запустить. Любые идеи будут наиболее заметны.

Спасибо, Али

+0

Вы можете показать мне html, который генерирует код asp? – Nalum

+0

Где находится ваш javascript? «это» относительный, не зная, откуда вы пришли, это слепое предположение. –

ответ

0

Глядя на сценарий ниже вашей ссылке не нажата, так как window.location установлен. Читая, что сообщение в блоге говорит, что вы либо устанавливаете window.location, либо используете $(this).find("a").click();, но не оба.

<script type="text/javascript"> 
    var selected = null; 
    $(document).ready(function(){ 
     $("#gvCustomers").find("tr").click(function(){ 
      $(selected).removeClass("selected"); $(this).addClass("selected"); selected = this; 
     }); 
     $("#gvCustomers").find("tr").dblclick(function(){ 
      var Id = $(this).find("td:nth-child(1)").text(); 
      //window.location = "/CustomersVehiclesWebSite/Default2.aspx?record=" + $(this).find("td:nth-child(1)").text(); 
      $(this).find("a").click(); 
     }); 
    }); 
    function doPostBack(element) { 
    tb_remove(); 
    setTimeout('__doPostBack(\'' + element.name + '\',\'\')', 500);// 500ms given to thickBox to remove itself 
    } 
</script> 
+0

удалено window.location, но нет радости. Есть ли альтернативный способ достижения одного и того же? т.е. вызов метода стороны сервера из строки gridview двойной щелчок? ИЛИ отображение всплывающего окна с деталями строки, которая была дважды нажата? В принципе, я не использовал JavaScript и JQuery, поэтому мне не очень удобно с ними. – Ali

+0

Техника в этом блоге выглядит убедительно, хотя я уже показывал всплывающие окна jquery из методов на стороне сервера. – Ali