读书人

来帮忙多谢

发布时间: 2012-01-03 22:16:07 作者: rapoo

高手请进来帮忙,谢谢!
<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值。请高手帮忙。谢谢!

[解决办法]
加个点击后的方法啥。
当点击了就向数据库中把Hits的值加1,要把刚加1后的值从数据库中读取出来,把GridView绑定数据的方法不要写在Page_Load里面,写在另一个方法中。Page_Load时调用这个绑定GridView数据的方法。点击title后也调用一下绑定GridView数据的方法.......
[解决办法]
如果使用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
//...

//重新绑定数据
}

读书人网 >C#

热点推荐