我直接贴我的代码了,我希望的效果是,每次点击删除分类,就可以直接删除,不用再次刷新页面。
现在每次是删除了,但是还得刷新页面,一下,如果我下了断点,一步一步的执行的话,就没有这个问题。我怀疑不是代码的问题。 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDropList();
}
} /// <summary>
/// 绑定dropdownlist
/// </summary>
public void BindDropList()
{
DataSet DS=new DataSet();
DS = new database().QueryDataSet("SELECT id,[分类名称],[分类英文名称] FROM [精选案例分类]");
if (DS.Tables[0].Rows.Count > 0)
{
DataTable Dt = DS.Tables[0].Clone();
DataRow DR;
for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
{
DR = Dt.NewRow();
DR["id"] = DS.Tables[0].Rows[i]["id"];
DR["分类名称"] = DS.Tables[0].Rows[i]["分类名称"] + " " + DS.Tables[0].Rows[i]["分类英文名称"];
Dt.Rows.Add(DR);
}
delClassList.DataTextField = "分类名称";
delClassList.DataValueField = "id";
delClassList.DataSource = DS;
delClassList.DataBind();
}
} protected void delClass_Click(object sender, EventArgs e)
{
try
{
string delId = Request["delClassList"];
if (delId != string.Empty)
{
if (new database().ExcuteSql("DELETE FROM [精选案例分类] WHERE id=" + delId) > 0)
{
ErrMsg.Text = "删除成功!";
}
}
BindDropList();
}
catch (Exception ee)
{
ErrMsg.Text = ee.ToString();
}
}HTML 页面代码 <table align="center" background="images/dot_1.gif" bgcolor="#ffffff" border="1"
bordercolor="#ffffff" cellpadding="2" cellspacing="1" width="98%">
<tr class="topbg">
<td bgcolor="#e1e1e1" colspan="2"><a href="#" name="aboutus1" ></a>
维护精选案例分类</td>
</tr>
<tr class="trbg">
<td align="right" bgcolor="#f0f0f0" width="80">
删除分类:</td>
<td>
<asp:DropDownList ID="delClassList" runat="server">
</asp:DropDownList>
<asp:Button ID="delClass" runat="server" OnClick="delClass_Click" Text="删除当前分类" /></td>
</tr>
<tr class="trbg">
<td align="right" bgcolor="#f0f0f0" >
</td>
<td >
</td>
</tr>
<tr class="trbg">
<td align="right" bgcolor="#f0f0f0">
</td>
<td>
</td>
</tr>
<tr class="trbg">
<td align="center" colspan="2">
<asp:Label ID="ErrMsg" runat="server"></asp:Label></td>
</tr>
</table>
现在每次是删除了,但是还得刷新页面,一下,如果我下了断点,一步一步的执行的话,就没有这个问题。我怀疑不是代码的问题。 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDropList();
}
} /// <summary>
/// 绑定dropdownlist
/// </summary>
public void BindDropList()
{
DataSet DS=new DataSet();
DS = new database().QueryDataSet("SELECT id,[分类名称],[分类英文名称] FROM [精选案例分类]");
if (DS.Tables[0].Rows.Count > 0)
{
DataTable Dt = DS.Tables[0].Clone();
DataRow DR;
for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
{
DR = Dt.NewRow();
DR["id"] = DS.Tables[0].Rows[i]["id"];
DR["分类名称"] = DS.Tables[0].Rows[i]["分类名称"] + " " + DS.Tables[0].Rows[i]["分类英文名称"];
Dt.Rows.Add(DR);
}
delClassList.DataTextField = "分类名称";
delClassList.DataValueField = "id";
delClassList.DataSource = DS;
delClassList.DataBind();
}
} protected void delClass_Click(object sender, EventArgs e)
{
try
{
string delId = Request["delClassList"];
if (delId != string.Empty)
{
if (new database().ExcuteSql("DELETE FROM [精选案例分类] WHERE id=" + delId) > 0)
{
ErrMsg.Text = "删除成功!";
}
}
BindDropList();
}
catch (Exception ee)
{
ErrMsg.Text = ee.ToString();
}
}HTML 页面代码 <table align="center" background="images/dot_1.gif" bgcolor="#ffffff" border="1"
bordercolor="#ffffff" cellpadding="2" cellspacing="1" width="98%">
<tr class="topbg">
<td bgcolor="#e1e1e1" colspan="2"><a href="#" name="aboutus1" ></a>
维护精选案例分类</td>
</tr>
<tr class="trbg">
<td align="right" bgcolor="#f0f0f0" width="80">
删除分类:</td>
<td>
<asp:DropDownList ID="delClassList" runat="server">
</asp:DropDownList>
<asp:Button ID="delClass" runat="server" OnClick="delClass_Click" Text="删除当前分类" /></td>
</tr>
<tr class="trbg">
<td align="right" bgcolor="#f0f0f0" >
</td>
<td >
</td>
</tr>
<tr class="trbg">
<td align="right" bgcolor="#f0f0f0">
</td>
<td>
</td>
</tr>
<tr class="trbg">
<td align="center" colspan="2">
<asp:Label ID="ErrMsg" runat="server"></asp:Label></td>
</tr>
</table>
好像是没问题。
等高手
即于你说调试下就没有刷新,那可能是浏览器的问题了,你用的是什么浏览器啊
(你可以用AJAX来实现)
现在每次是删除了,但是还得刷新页面,
服务器端的按钮控件,就算没有写事件,也会刷新页面。
{
BindDropList();
}
可以每次执行的时候重新绑定
delClassList.DataTextField = "分类名称";
delClassList.DataValueField = "id";
delClassList.DataBind();
你好,您说的情况我试验过,下了断点,一步一步的执行,数据删除了,然后重新绑定,页面显示正常,也是我想要的效果,可以说,下断点的过程中,没有任何问题,但是不下断点,直接点按钮执行,就是不行,页面删除不掉,要重新刷新才可以,之前没有遇到过这种问题。另外,我觉得视乎是页面缓存的问题,因为我随便加了一句 "response.write("11111");",按F5,执行,这句话无法显示,我要再用鼠标刷新一下页面才可以,
如果说是页面缓存的问题,我在代码中加入了
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");这样,也是没有效果.页面演示地址是:
http://www.sy-cg.cn/admin/jxal.aspx
试验了,还是不行,现在不是因为没有清空dropdownlist 的问题,因为,我单步执行的话,
是可以正常执行的。唯独不下断点的时候,不行。我把整个项目上传了,希望大家帮我看看,
我很着急,谢谢大家。
下载地址:
http://www.sy-cg.cn/work.rar
delClassList.DataTextField = "分类名称";
delClassList.DataValueField = "id";
delClassList.DataBind();
public int ExcuteSql(string Sql)
{
int ReturnInt=0;
OpenConnection();
OleDbCommand OleCmd=new OleDbCommand();
OleCmd.Connection = Conn;
OleCmd.CommandText = Sql;
try
{
ReturnInt = OleCmd.ExecuteNonQuery();
if (ReturnInt > 0)
{
return ReturnInt;
}
else
{
return 0;
}
}
catch
{
return 0;
}
finally //要關閉此連接
{
CloseConnection();
} }
BindDropList();
ErrMsg.Text = "删除成功!";
技术深究一下:
1.为何我下断点分步执行时,就显示正常,是数据库连接自动关闭,有一个时间吗?断点执行时,操作这个时间,数据库连接就自动关闭了?
2. 为何在SQL SERVER 2000 中,没有这个问题呢?