在ASPX页面中有一个用户控件:
<uc1:fxss id="Fxss1" TopNum="7" runat="server"></uc1:fxss>在fxss.ascx.cs中定义属性:
public int TopNum
{
get {
return Convert.ToInt16(ViewState["topnum"]);
}
set{ ViewState["topnum"] = value; }
}AJAX调用属性:
[AjaxPro.AjaxMethod]
public string GetFxss()
{
string sql = "Select TOP "+TopNum+" guid,zt From VW_XG_fxss Order By id";
...
}出现的问题如下:
TopNum的值总是为0,数据库里有记录,也就是说没有取到用户控件属性的取,怎么解决啊?

解决方案 »

  1.   

    string sql = "Select TOP "+TopNum+" guid,zt From VW_XG_fxss Order By id";
    修改:
    string sql = "Select TOP "+Fxss1.TopNum+" guid,zt From VW_XG_fxss Order By id";
      

  2.   

    可先设置Fxss1.TopNum =  10 ;//由你自己设置;
    string sql = "Select TOP "+Fxss1.TopNum+" guid,zt From VW_XG_fxss Order By id";楼主的情况TopNum = 0 ; 你先检查初始化时设置TopNum是不是0,或者没有给它赋值了
      

  3.   

    我是在用户控件fxss.ascx.cs进行AJAX调用的,改为:
    string sql = "Select TOP "+Fxss1.TopNum+" guid,zt From VW_XG_fxss";报Fxss1未定义;
    如果用this.TopNum结果还是topnum的初始值;
      

  4.   

    ajax 因为不是通过页面提交回来的,而使用xmlhttp发送回服务器,所以不能使用viewState
    比较不好的方法是可以用Session,ajaxmethod 属性要改一下,记不清了,具体查ajax.net文档
    另外,最好从客户端传回
    [AjaxPro.AjaxMethod]
    public string GetFxss(int nTopNum)
    {
    string sql = "Select TOP "+nTopNum.ToString()+" guid,zt From VW_XG_fxss Order By id";
    ...
    }