想实现的功能为,点击“支持”后,利用AJAX执行一次数据库的update操作,成功后,重新绑定repeater控件。
出现的问题为,点击“支持”后,update 成功,但重新进行数据绑定时,语句this.Repeater1 .DataSource =dt;不能继续执行,反而弹出一个alert,内容为null .请教各位高手
前台代码:
<script>
function support()
{
alert(PkDetail.userSupport().value);
}



</script>
<asp:Repeater ID="Repeater1" Runat="server">
<HeaderTemplate>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td id="bbs_user_<%# DataBinder.Eval(Container, "DataItem.UserID")%>"><%# DataBinder.Eval(Container, "DataItem.UserID")%></td>
</tr>
<tr>
<td id="bbs_id_poll_<%# DataBinder.Eval(Container, "DataItem.UserID")%>">&nbsp;&nbsp;<%# DataBinder.Eval(Container, "DataItem.UserViewPoint")%></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>&nbsp;<a onclick ="javascript:support()"><u>支持<u></a>&nbsp;得票(<%# DataBinder.Eval(Container, "DataItem.UserVote")%>)&nbsp;<a href='javascript:;' onclick='quote(<%# DataBinder.Eval(Container, "DataItem.UserID")%>)'><font color='#0099CC'><u>引用</u></font></a></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate> </asp:Repeater>后台代码为:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(PkDetail));
if(!this.Page .IsPostBack )
{
bindData();//此时正常
}
}
[Ajax.AjaxMethod]
public  int userSupport()
{
int flag=-1;
using (cml=new movies.Business.CmsInfo.CmsLogic ())
{
flag= cml.userSupport();//此时正常

}
bindData();//此时报错
return flag;
} private void bindData()
{
using (cml=new movies.Business.CmsInfo.CmsLogic ())
{
DataTable dt=cml.getPkDetail();
if(dt!=null && dt.Rows .Count >0)
{
this.Repeater1 .DataSource =dt;//此行报错
this.Repeater1 .DataBind (); }
}
}