如何通过javascript

时间:2016-03-28 10:21:33

标签: javascript html asp.net gridview onclick

我有一种情况,我有一个GridView有多个行和列,它们很好地绑定并在其中显示数据。代码是这样的:

<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#代码中处理了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谎言:

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

但它不起作用。如何使它工作?我的意思是我单击一行,它必须使用该行的nid调用函数displayHistoryThroughImages(),并且只能在javascript中调用。

1 个答案:

答案 0 :(得分:0)

只需尝试改变点击这一个

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

JS功能:

function displayHistoryThroughImages(nid)
            {

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