(急)cookie问题和textbox的焦点离开时的事件问题!

ksmark 2011-08-11 11:12:10
如题:
1.先说第一个问题(cookie问题)
我通过A.aspx页面的 window.open的方式,打开一个B页面 B.aspx ,B窗口连接到数据库,找出很多条记录(放在GridView中)。找出其中一条,把一行中的数据放到cookie中去,然后再通过window.opener.location.reload()的方式,重新刷新A.aspx,把刚才放到cookie中的数据,读取出来放到a.aspx中的某个textbox中。到这里为止都是没有问题的。

因为现在的浏览器都是多标签的,读出的内容代码放在Page_load()中,所以当再次打开A.ASPX的时候,A.aspx中的textbox中还能读到cookie的值。我试图通过 Request.Cookies["KTCode"].Expires = DateTime.Now.AddDays(-1); 来使cookie失效,但仍然不行。所以特来咨询各位。

2.第二个问题。
当我在A.aspx中的textbox1中写入内容,光标移入到textbox2中时,需要触发一个事件,通过此事件,连接到数据库,找出以textbox1为条件的值,然后放入textbox2中。

本人刚接触Web编程。很多不懂,请各位高人指点。
...全文
244 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingYun1029 2011-08-12
  • 打赏
  • 举报
回复
设置textbox1的onblur事件,该事件通过ajax获取后台返回过来的参数,然后通过js代码实现自己的业务。。

Ajax简单实例
这个例子是我刚学ajax的时候写的,你看看看看。。

不过建议还是用jquery里面的ajax好,方便、简单、通用性强……
ksmark 2011-08-12
  • 打赏
  • 举报
回复
第一个问题搞定。TKS.

第二个问题,期待中。。。。
qingYun1029 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qingyun1029 的回复:]

cookie的问题:
http://topic.csdn.net/u/20110812/09/c04054d6-29f1-42f0-b854-85e377dc4b85.html?15920
[/Quote]

虽然不能马山清除掉(我怀疑是“发送请求”和服务器端执行顺序有关),但是当清除掉cookie后,再发送get请求可以成功。。。
ksmark 2011-08-12
  • 打赏
  • 举报
回复
第二个问题:
我当然不希望页面刷新了。看来只能结合ajax了。

有谁有相关事例啊。贴出来可否。
ksmark 2011-08-12
  • 打赏
  • 举报
回复
TO:4楼的 yanlele424
B页面中的
window.returnValue = str;
好像不起作用。

还有 A页面的str[0] str[1]是 A地方的str变量吗?我的值怎么传不过去啊。

---------------------------
function open_windows_and_get_customerinfo(openwindow, control, control2) {
A地方:var str = window.showModalDialog(openwindow, window, "dialogWidth=500px;dialogHeight=400px;center=yes;help=no;resizable=no;status=no");
if (!str)
return;
document.getElementById(control).value = str[0];
document.getElementById(control2).value = str[1];
}

------------------------------------------------
  • 打赏
  • 举报
回复
看来解决了 我顶
v1srine 2011-08-12
  • 打赏
  • 举报
回复
+1[Quote=引用 1 楼 wxr0323 的回复:]
第一个问题可以把值放到Session 或者直接传递到A页面

第二个问题 textbox1有个事件 页面找到textbox1 双击就进去 在那里面写查询 然后赋值给textbox2



C# code
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
//查询赋值
……
[/Quote]
l00j00q00 2011-08-12
  • 打赏
  • 举报
回复
问题1:
Request.Cookies["KTCode"].Expires = DateTime.Now.AddDays(-1);
修改Request中的cookie不会导致客户端cookie变化,你试试:
Request.Cookies["KTCode"].Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(Request.Cookies["KTCode"]);
问题2:
建议用ajax,在onblur中发出请求
翘楚时代 2011-08-12
  • 打赏
  • 举报
回复
试没试过双击GridView行向A.aspx返回一行数据呢?
如下:A.aspx中的一个按钮客户端事件:
    function open_windows_and_get_customerinfo(openwindow, control, control2) {
var str = window.showModalDialog(openwindow, window, "dialogWidth=500px;dialogHeight=400px;center=yes;help=no;resizable=no;status=no");
if (!str)
return;
document.getElementById(control).value = str[0];
document.getElementById(control2).value = str[1];
}

而B.aspx中的Gridview行绑定事件:
 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
//当鼠标移开时还原背景色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
e.Row.Attributes.Add("OnDblClick", "dbclick_return_and_close('" + e.Row.Cells[0].Text + "','" + e.Row.Cells[2].Text + "')");

if (e.Row.Cells[3].Text.Length > 15)
{
e.Row.Cells[3].ToolTip = e.Row.Cells[3].Text;
e.Row.Cells[3].Text = e.Row.Cells[3].Text.Substring(0, 15);
}
if (e.Row.Cells[4].Text.Length > 15)
{
e.Row.Cells[4].ToolTip = e.Row.Cells[4].Text;
e.Row.Cells[4].Text = e.Row.Cells[4].Text.Substring(0, 15);
}
}
}

B中的客户端JS方法:
function dbclick_return_and_close(bomid,bomno) 
{
if(bomid!=null&&bomno!=null)
{
var str = new Array(bomid, bomno);
window.returnValue = str;
window.close();
}

}
ksmark 2011-08-12
  • 打赏
  • 举报
回复
感谢各位朋友。我的问题全解决了。
LMAOhuaNL 2011-08-11
  • 打赏
  • 举报
回复
1.System.Web.HttpCookie ck=new HttpCookie("ckValue0");

ck.Expires=System.DateTime.Now.AddMinutes(20);//即刻起cooke20分钟后失效


2.用文本框的TextChanged事件可以直接将文本的值赋给textbox
楼上子夜大哥已经说的太详细不过了,我顶
ustbwuyi 2011-08-11
  • 打赏
  • 举报
回复
1. 可以尝试在JavaScript中读写Cookie,也可以在JavaScript中设置Cookie的过期时间使Cookie失效。
2. 允许刷新的话可以用子夜的办法,无刷新的话可参考:
例子
子夜__ 2011-08-11
  • 打赏
  • 举报
回复
第一个问题可以把值放到Session 或者直接传递到A页面

第二个问题 textbox1有个事件 页面找到textbox1 双击就进去 在那里面写查询 然后赋值给textbox2


 protected void TextBox1_TextChanged(object sender, EventArgs e)
{
//查询赋值
string sql = "select .xxxx";
this.TextBox2.Text = ReturnDataTable(sql).Rows[0][0].ToString();
//当然用其他方法也可以
}
public static DataTable ReturnDataTable(string cmdtext)
{
SqlConnection cn = new SqlConnection();
cn.ConnectionString = "数据库连接字符串";
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand();
cmd = new SqlCommand(cmdtext, cn);
cmd.CommandType = CommandType.Text; ;
SqlDataReader dr = null;
using (dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(dr);
}
return dt;
}

也可以通过textbox2 的焦点事件 jquery ajax 来访问

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧