2016-03-28 83 views
0

我有一種情況,我有一個GridView具有多行和多列的綁定,並在其中顯示數據。該代碼是這樣的:如何通過在GridView中點擊GridView來獲得nid只能通過javascript

<asp:GridView ID="dgnews" runat="server" AllowPaging="true" AutoGenerateColumns="False" 
    OnRowCommand="dgnews_RowCommand" OnPageIndexChanging="dgnews_PageIndexChanging" 
    OnRowDataBound="dgnews_RowDataBound"> 
    <Columns> 
     <asp:TemplateField HeaderText="S.No." ItemStyle-Width="15px"> 
      <ItemTemplate> 
       <%# Container.DataItemIndex + 1 %> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Transfer Date" SortExpression="assetcode" ItemStyle-Width="15%"> 
      <ItemTemplate> 
       <%# DataBinder.Eval(Container.DataItem, "transferdate")%> 
      </ItemTemplate> 
     </asp:TemplateField>          

     <asp:TemplateField HeaderText="Department" ItemStyle-Width="18%"> 
      <ItemTemplate> 
       <%# DataBinder.Eval(Container.DataItem, "departmentname")%> 
      </ItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField ItemStyle-Width="5px"> 
      <ItemTemplate> 
       <asp:LinkButton ID="lbtnedit" Visible="false" CommandName="edititem" CommandArgument='<%# Eval("nid")%>' 
        ToolTip="Edit" runat="server"><i class="fa fa-fw" ><img src="images/edit.png" alt="" /></i></asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns>              
</asp:GridView> 

,我已經在我的C#代碼做soemthing liek此處理dgnews_RowCommand:

protected void dgnews_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "edititem") 
    { 
     Value = e.CommandArgument.ToString();// And i get the value of id of clicked row link button like this 
    } 
} 

,我得到的鏈接按鈕的NID的點擊這樣"Value = e.CommandArgument.ToString();"值。它工作正常。

現在我想要的只是通過javascript onclick函數調用來獲得此行的點擊行。我的意思是,當我點擊一個排它必須在該行調用一個函數onclick="displayHistoryThroughImages(#DataBinder.Eval(Container.DataItem,'nid'));"

<asp:GridView ID="dgnews" runat="server" OnRowCommand="dgnews_RowCommand" OnRowDataBound="dgnews_RowDataBound"onclick="displayHistoryThroughImages(#DataBinder.Eval(Container.DataItem,'nid'));"> 

,並在JavaScript中我必須把它的NID liek這樣的:

<script> 
function displayHistoryThroughImages(nid) 
{ 
    alert("row pressed with nid : "+nid); 
} 
</script> 

但它不工作。如何使它工作?我的意思是我點擊一行,它必須調用函數displayHistoryThroughImages()與該行的nid,並只在JavaScript中。

回答

0

剛剛嘗試過的onclick改變這一

onclick='<%# "javascript:displayHistoryThroughImages('" + Eval("nid") +"')" %>' 

JS功能:

function displayHistoryThroughImages(nid) 
      { 

       alert("row pressed with nid : "+nid); 
      } 
+0

這也給了C#代碼中的錯誤:錯誤 'dgnews' 不存在名稱在當前的情況下 –

+0

@testtest它將採取commanf參數 – Webruster

+0

@testtest你需要將onclick分配給LinkBut​​ton,但不是網格,在這裏我們需要獲得id當你在gridview上做的時候,你不會得到那個ID – Webruster