首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

gridview 结合 ajax实现投票功能 进者有分,该如何解决

2012-01-20 
gridview 结合 ajax实现投票功能 进者有分asp:GridViewID TopicRelation runat server AllowPaging

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怎样得到前台的值,传递给后台],我的方法决对可以

热点排行