问题是这样的,我和一个朋友一起做一个项目,昨天他把他做好剩下的那块交给我接着做,但他在项目中引用了一个Ajax.dll,并且在程序有Ajax.Utility.RegisterConverterForAjax(typeof(AjaxMethod)); 这样的程序.现在我拿过来的时候,让我重新引用一下Ajax.dll到项目中,我引用了,并且在web.config中照他的意思也配置了<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /></httpHandlers> 但运行还是出错,说找不到AjaxMethod,我问他,他说在他机子上这样配置是好的.我现在不知道该怎么办了,只有寄希望与此.希望得到大家的指点.
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /></httpHandlers> 但运行还是出错,说找不到AjaxMethod,我问他,他说在他机子上这样配置是好的.我现在不知道该怎么办了,只有寄希望与此.希望得到大家的指点.
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /></httpHandlers>
出现的错误是 找不到 AjaxMethod(缺少using 引用,或程序集引用) ,AjaxMethod这个是Ajax.dll中的一个类名,我不知道正确的引用Ajax.dll,然后在访问里面的类名? 这就是现在问题.
public class addadmin : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.Label Label1;
string S_id;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterConverterForAjax(typeof(AjaxMethod));//就是在这里的AjaxMethod会出错,改成addadmin还是会.
if(!Page.IsPostBack)
{
S_id=Request.QueryString["S_id"].ToString();
this.Label1.Visible=false;
this.DropDownList1.DataSource=AjaxMethod.GetPovinceList();//还有这个AjaxMethod也会出错
this.DropDownList1.DataTextField="module_name";
this.DropDownList1.DataValueField="table_name";
this.DropDownList1.DataBind(); this.DropDownList1.Attributes.Add("onclick","cityResult();");
}
}
//下面的可以不看了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
string SqlConn=System.Configuration.ConfigurationSettings.AppSettings["ConnString"];
SqlConnection Conn=new SqlConnection(SqlConn);
Conn.Open();
string tableName = Request.Form["DropDownList1"].ToString();
//读取管理员表名称
string SqlStr="select * from modules where table_name='"+tableName+"'";
SqlCommand Comm=new SqlCommand(SqlStr,Conn);
SqlDataReader read=Comm.ExecuteReader();
read.Read();
string adminName=read["admin_name"].ToString();
read.Close(); //判断表里是否已有该用户
string SqlStr1="select * from "+adminName+" where user_ID='"+Request.QueryString["S_id"].ToString()+"'";
SqlCommand Comm1=new SqlCommand(SqlStr1,Conn);
SqlDataReader read1=Comm1.ExecuteReader();
if(read1.Read())
{
Response.Write("<script language=javascript>alert('该用户已经是该系统管理员,请在用户管理里修改其权限!');</script>");
read1.Close();
}
else
{
read1.Close();
//将管理用户添加到相应模块的管理员表
string SqlStr2="insert into "+adminName+"(user_ID,rulesID) values(@TuserID,@TrulesID)";
SqlCommand Comm2=new SqlCommand(SqlStr2,Conn); Comm2.Parameters.Add("@TuserID",SqlDbType.Int);
Comm2.Parameters.Add("@TrulesID",SqlDbType.Int); Comm2.Parameters["@TuserID"].Value=Request.QueryString["S_id"].ToString();
Comm2.Parameters["@TrulesID"].Value=Request.Form["DropDownList2"].ToString(); Comm2.ExecuteReader();
this.Label1.Visible=true;
Response.Redirect("addadmin.aspx?S_id="+Request.QueryString["S_id"].ToString()+"");
}
} }
前面的javascript是:
<script language="javascript">
function cityResult()
{
var city=document.getElementById("DropDownList1");
AjaxMethod.GetCityList(city.value,get_city_Result_CallBack);
}
function get_city_Result_CallBack(response)
{
if (response.value != null)
{
//debugger;
document.all("DropDownList2").length=0;
var ds = response.value;
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
{
for(var i=0; i<ds.Tables[0].Rows.length; i++)
{
var name=ds.Tables[0].Rows[i].rules;
var id=ds.Tables[0].Rows[i].rulesID;
document.all("DropDownList2").options.add(new Option(name,id));
}
}
}
return
}
function getData()
{
var province=document.getElementById("DropDownList1");
var pindex = province.selectedIndex;
var pValue = province.options[pindex].value;
var pText = province.options[pindex].text;
var city=document.getElementById("DropDownList2");
var cindex = city.selectedIndex;
var cValue = city.options[cindex].value;
var cText = city.options[cindex].text;
}
</script>后台的程序是这样的:
类名为:addadmin
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.Label Label1;
string S_id;
//[AjaxPro.AjaxMethod]
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterConverterForAjax(typeof(AjaxMethod));//这是就是出错的地方,改成类名addadmin也不行.
if(!Page.IsPostBack)
{
S_id=Request.QueryString["S_id"].ToString();
this.Label1.Visible=false;
this.DropDownList1.DataSource=AjaxMethod.GetPovinceList();//还有这里的AjaxMethod一样出错
this.DropDownList1.DataTextField="module_name";
this.DropDownList1.DataValueField="table_name";
this.DropDownList1.DataBind(); this.DropDownList1.Attributes.Add("onclick","cityResult();");
}
}
<script type="text/javascript" src="/ajax/common.ashx"></script>
<script type="text/javascript" src="/ajax/项目名字.类名,项目名.ashx"></script>
类:
/// <summary>
///
/// </summary>
/// <param name="keyValue"></param>
/// <param name="contentType"></param>
/// <returns></returns>
[Ajax.AjaxMethod()]
Ajax.Utility.RegisterConverterForAjax(typeof(addadmin));