问个问题 请高人解答,本人是菜鸟,请详细一点。谢谢了。
一条信息 如果是登陆这个人发布的 就可以删除 如果不是登陆这个人发布的则不让删除 弹出提示框
我用AJAX
代码如下 信息列表页面
<script language="JavaScript" type="text/jscript">
function comeBack(pID,title)
{
if(confirm("您确定将<"+title+">撤项吗?"))
{
CheckUser(pID)
}
}
var xmlHttp = null;
function CheckUser(uid)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err1)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err2)
{
xmlHttp = new XMLHttpRequest();
}
}
var url = "test.aspx?id=" + uid;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = OnHandler;
xmlHttp.send(null);
}
function OnHandler()
{
if(xmlHttp.readyState == 4)
{
var isValid = xmlHttp.responseText;
alert(isValid.substring(0,20));
}
}
</script>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="b5d6e6" onmouseover="changeto()" onmouseout="changeback()">
<tr>
<th width="30%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px;"><div align="center"><span class="STYLE1">项目名称</span></div></th>
<th width="10%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">项目类型</span></div></th>
<th width="15%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">建项时间</span></div></th>
<th width="10%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">建项人</span></div></th>
<th width="8%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">项目状态</span></div></th>
<th width="8%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">抽取情况</span></div></th>
<th width="18%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">基本操作</span></div></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToString(Eval("pName"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToString(Eval("pt.tName"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToDateTime(Eval("pDate"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToString(Eval("user.uName"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# getState(Convert.ToInt32(Eval("pState")))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# isDraw(Convert.ToBoolean(Eval("pDraw")))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1">
<a href="javascript:CheckUser('<%# Eval("pID") %>')"><img alt="撤项" src="../images/tab/del.gif" width="16" height="16" />撤项 </a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>在我点扯项的时候 跳转到test.aspx页判断是否是登陆人发布的项目 然后返回结果
下面是test.aspx.cs的代码 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//获得本项目的ID
int id = Convert.ToInt32(Request.QueryString["id"]);
int count = 0;
//判断是否已经撤项 //获得用户ID
if (Session["userid"] != null)
{//此方法是判断是否可以撤销项目 大于0则可以撤销
count = t_Project_Service.GetIsProjectCancel(id, Convert.ToInt32(Session["userid"].ToString()));
}
else { Response.Redirect("/Login.aspx"); }
if (count > 0)
{
//此处代码为撤销项目 修改数据库 返回影响的行数
int i = t_Project_Service.UpdateProjectState(id, 2);
if (i > 0)
{
Response.Write(" 项目撤项成功! ");
}
else { Response.Write("对不起!项目撤销失败,请联系系统管理员。"); }
}
else
{
Response.Write("对不起!您不是项目创建人不能撤销此项目!");
}
}
}
现在的问题来了 操作都没有问题 不论什么结果都能返回相应的信息 并弹出提示框
但是如果可以撤项 数据也改了 扯项成功的对话框也弹出来了 但是页面没有反应 还得刷新一下 才能看到数据修改过来了
我现在就是不知道怎么在修改数据库成功以后再刷新一下界面
请高人指点 不要太深奥 也别将什么原理了 因为我真的不懂 就简简单单的告诉我该怎么做,详细一点,最好能有代码,
再次由衷的感谢,我是在初级阶段。
一条信息 如果是登陆这个人发布的 就可以删除 如果不是登陆这个人发布的则不让删除 弹出提示框
我用AJAX
代码如下 信息列表页面
<script language="JavaScript" type="text/jscript">
function comeBack(pID,title)
{
if(confirm("您确定将<"+title+">撤项吗?"))
{
CheckUser(pID)
}
}
var xmlHttp = null;
function CheckUser(uid)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err1)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err2)
{
xmlHttp = new XMLHttpRequest();
}
}
var url = "test.aspx?id=" + uid;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = OnHandler;
xmlHttp.send(null);
}
function OnHandler()
{
if(xmlHttp.readyState == 4)
{
var isValid = xmlHttp.responseText;
alert(isValid.substring(0,20));
}
}
</script>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="b5d6e6" onmouseover="changeto()" onmouseout="changeback()">
<tr>
<th width="30%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px;"><div align="center"><span class="STYLE1">项目名称</span></div></th>
<th width="10%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">项目类型</span></div></th>
<th width="15%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">建项时间</span></div></th>
<th width="10%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">建项人</span></div></th>
<th width="8%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">项目状态</span></div></th>
<th width="8%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">抽取情况</span></div></th>
<th width="18%" background="images/tab/bg.gif" bgcolor="#FFFFFF" style="height: 22px"><div align="center"><span class="STYLE1">基本操作</span></div></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToString(Eval("pName"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToString(Eval("pt.tName"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToDateTime(Eval("pDate"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# Convert.ToString(Eval("user.uName"))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# getState(Convert.ToInt32(Eval("pState")))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1"><%# isDraw(Convert.ToBoolean(Eval("pDraw")))%></span></div></td>
<td bgcolor="#FFFFFF" style="height: 20px"><div align="center"><span class="STYLE1">
<a href="javascript:CheckUser('<%# Eval("pID") %>')"><img alt="撤项" src="../images/tab/del.gif" width="16" height="16" />撤项 </a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>在我点扯项的时候 跳转到test.aspx页判断是否是登陆人发布的项目 然后返回结果
下面是test.aspx.cs的代码 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//获得本项目的ID
int id = Convert.ToInt32(Request.QueryString["id"]);
int count = 0;
//判断是否已经撤项 //获得用户ID
if (Session["userid"] != null)
{//此方法是判断是否可以撤销项目 大于0则可以撤销
count = t_Project_Service.GetIsProjectCancel(id, Convert.ToInt32(Session["userid"].ToString()));
}
else { Response.Redirect("/Login.aspx"); }
if (count > 0)
{
//此处代码为撤销项目 修改数据库 返回影响的行数
int i = t_Project_Service.UpdateProjectState(id, 2);
if (i > 0)
{
Response.Write(" 项目撤项成功! ");
}
else { Response.Write("对不起!项目撤销失败,请联系系统管理员。"); }
}
else
{
Response.Write("对不起!您不是项目创建人不能撤销此项目!");
}
}
}
现在的问题来了 操作都没有问题 不论什么结果都能返回相应的信息 并弹出提示框
但是如果可以撤项 数据也改了 扯项成功的对话框也弹出来了 但是页面没有反应 还得刷新一下 才能看到数据修改过来了
我现在就是不知道怎么在修改数据库成功以后再刷新一下界面
请高人指点 不要太深奥 也别将什么原理了 因为我真的不懂 就简简单单的告诉我该怎么做,详细一点,最好能有代码,
再次由衷的感谢,我是在初级阶段。
{
CheckUser(pID)
}加个判断即可
绑定数据在哪里 重新再绑定一下就ok了啊
alert(isValid.substring(0,20));
这里,你应该判一下返回值是什么,也就是你在后台write的值了。
常规办法是判断后使用js对成功与不成功的返回值来操作页面的静页html,现在问题来了,你的页面使用了Repeater,得写js来做对repeater转为的那个大table的移除行操作,这你会了就可以做了。
alert(isValid.substring(0,20));
window.location.reload();但是如果要刷新的话 你就失去了用ajax的意义了