onclick事件不会调用函数吗?

时间:2015-05-04 13:41:23

标签: c# asp.net gridview

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    Width="245px" onselectedindexchanged="GridView1_SelectedIndexChanged" >
    <Columns>
        <asp:TemplateField>
            <ItemStyle BackColor="#CCCCCC" ForeColor="Black" Width="250px" HorizontalAlign="Center" BorderStyle="None" />
            <ItemTemplate>
                <a href="" onclick="GridView1_SelectedIndexChanged"> <asp:Label ID="Label5" runat="server" Text='<%# Bind("users") %>'></asp:Label></a>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>        
</asp:GridView>

我不想使用自动生成的选择链接或任何按钮,我只想让标签(或链接)本身触发selectedIndexChanged事件。

C#代码是: -

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) {
    show_chats();
}

但是没有调用事件方法。请建议做什么

2 个答案:

答案 0 :(得分:1)

<a onclick="...">是严格的HTML标记,onclick正在寻找名为GridView1_SelectedIndexChanged的javascript函数,而不是服务器端方法。将其更改为:

<asp:LinkButton runat="server" OnClick="GridView1_SelectedIndexChanged">

答案 1 :(得分:-1)

如果您不想使用linkbutton,或者您可以执行以下操作 -

<a href="" id="yourlinkId" runat="server"><asp:Label ID="Label5" runat="server" Text='<%# Bind("users") %>'></a>

背后的代码

    protected void Page_Load(object sender, EventArgs e)
    {
        yourlinkId.ServerClick += new EventHandler(GridView1_SelectedIndexChanged);
    }

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
         show_chats();
    }