<asp:GridView ID="gvList" runat="server" SkinID="ArticalPages" OnRowDataBound="gvList_RowDataBound"
        AutoGenerateColumns="False" OnPageIndexChanging="gvList_PageIndexChanging" OnRowCreated="gvList_RowCreated"
        OnSorting="gvList_Sorting" >
               <Columns>
            <asp:HyperLinkField DataNavigateUrlFields="Level1ID" DataNavigateUrlFormatString="~/Displays/Level1.aspx?ID={0}"
                DataTextField="Level1Name" HeaderImageUrl="~/images/fenlei.gif" SortExpression="Level1Name">
                <ItemStyle CssClass="DefaultLink" HorizontalAlign="Left" />
            </asp:HyperLinkField>
                        <asp:HyperLinkField DataNavigateUrlFields="Level2ID" DataNavigateUrlFormatString="~/Displays/Level2.aspx?ID={0}"
                DataTextField="Level2Name" HeaderImageUrl="~/images/zifenlei.gif" SortExpression="Level2Name">
                <ItemStyle CssClass="DefaultLink" HorizontalAlign="Left" />
            </asp:HyperLinkField>
                      <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="~/Displays/Articals.aspx?ID={0}"
                DataTextField="Title" HeaderImageUrl="~/images/biaoti.gif" SortExpression="Title">
                <ItemStyle CssClass="DefaultLink" HorizontalAlign="Left" />
            </asp:HyperLinkField>
                      <asp:BoundField DataField="hits" HeaderImageUrl="~/images/dianji.gif" SortExpression="hits">
                <ItemStyle Width="30px" />
            </asp:BoundField>
 </Columns>
               <HeaderStyle Height="0px" />
    </asp:GridView>这是*.ascx文件, <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="~/Displays/Articals.aspx?ID={0}"
                DataTextField="Title" HeaderImageUrl="~/images/biaoti.gif" SortExpression="Title">这用数据源TITLE做连接地址,现在要计算每次点击这个TITLE一次,相应的<asp:BoundField DataField="hits" HeaderImageUrl="~/images/dianji.gif" SortExpression="hits">
                <ItemStyle Width="30px" />
            </asp:BoundField>
在数据库中的hits值就增加一,也就是计数。。然后在页面显示出HITS值。请高手帮忙。谢谢!

解决方案 »

  1.   

    加个点击后的方法啥。
    当点击了就向数据库中把Hits的值加1,要把刚加1后的值从数据库中读取出来,把GridView绑定数据的方法不要写在Page_Load里面,写在另一个方法中。Page_Load时调用这个绑定GridView数据的方法。点击title后也调用一下绑定GridView数据的方法.......
      

  2.   

    如果使用HyperLink可以无法满足楼主的要求。
    使用TemplateField试试.aspx:
    -------
    <asp:TemplateField>
        <ItemTemplate>
           <asp:LinkButton ID="hl" runat="server" OnClick="UpdateHits" OnClientClick="window.open('<%# string.Format("/Displays/Articals.aspx?ID={0}", Eval("ID").ToString() %>')" CommandArgument='<%# Eval("Title") %>' Text='<%# Eval("ID") %>' />
           </ItemTemplate>
    </asp:TemplateField>.cs
    -----
    protected void UpdateHits(object sender, EventArgs e)
    {
       (LinkButton)lb = (LinkButton)Sender;
       string id = lb.CommandArgument.ToString();
       
       //...
       //根据id更新数据库中的hits
       //...   //重新绑定数据
    }