读书人

gridview 结合 ajax实现投票功能 进者

发布时间: 2012-01-20 18:53:53 作者: rapoo

gridview 结合 ajax实现投票功能 进者有分
<asp:GridView ID= "TopicRelation " runat= "server " AllowPaging= "True " AutoGenerateColumns= "False " PageSize= "5 " BorderStyle= "None " GridLines= "None " ShowHeader= "False ">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ApproveNum ") %>
<img runat= "server " id= "DiscussMyImg " src= "~/Topics/images/huati_36.gif "/> </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这是前台的代码。绑定投票数和image按钮。image做了onclick事件,赋值给了一个lable控件。点击后在后台我取得lable的值,并操作。实现函数:addVote(当前项id).
用ajax xmlhttprequest 怎么实现阿?谢谢了!

[解决办法]
up!不知道
[解决办法]
Ajax将值传递到后台,后台再执行一次绑定??
[解决办法]
www.zj-blog.com

参考一下儿我BLOG里面的投票功能的作法了,也是全部用AJAX实现的!
[解决办法]
up

[解决办法]

最简单的做法:

在GV中使用模板列,放几个(你的投票有几项)个图片按钮。

在绑定的时候把你投票的值绑定到按钮的宽上(当然你要全部都预加一个值不然没有投票的按钮会看不到,由于1的变化太小,所以最好把投的票数在绑定时适当的放大一下,比如*5)

投票时单击按钮,提交到服务器,把值加1写入库中。重新绑定。

使用 微软的AJAX组件中的updatepanel把这个GV包起来,就可以无刷新了。

呵呵,突发奇想,你可以试试。不知道按钮的宽能否直接绑定。


[解决办法]


如果用我的方法 图片按钮就是服务器端的控件啊,当然可以直接在后台处理了。


只不过我的做法是分成两部份,先解决 投票的提交和显示

然后再来处理AJAX无刷新。

呵呵
[解决办法]
up
[解决办法]
JF
[解决办法]
jf
[解决办法]
up and jf
[解决办法]
jf
[解决办法]
将image换成客户端,在它的mouse事件获取该行ID,然后用ajax(addVote),调用相应数据库操作
[解决办法]
不知道楼主是不是这个意,代码如下:
------------------前台------------------
<script>
function setValue(obj)
{
var e=document.getElementById(obj).parentElement.parentElement;

if(e.tagName == 'TR ')
{
document.getElementById( "hid_ID ").value=e.cells(1).innerHTML;
}
}
</script>


<input type= "hidden " id= "hid_ID " name= "hid_ID " runat= "server " />


<asp:TemplateField>
<ItemTemplate>
<asp:Label ID= "lbl_Del " runat= "server " Text= "删除 "> </asp:Label>
</ItemTemplate>
</asp:TemplateField>


-------------------------后台--------------------------

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//删除确认
Label lbl_del = (Label)e.Row.FindControl( "lbl_Del ");
lbl_del.Attributes.Add( "onMouseover ", "setValue( ' " + lbl_del.ClientID + " '); ");
lbl_del.Attributes.Add( "style ", "cursor: hand; ");
}
}

之前的只是客户端赋值,可以在lbl_del.Attributes.Add( "onclick ", "ajaxMethod( <取地个hidden的value> ) ");


应该可以实现
[解决办法]
问题关键所在,正如lz所说[通过ajax怎样得到前台的值,传递给后台],我的方法决对可以

读书人网 >asp.net

热点推荐