求个思路,页面间传值,并实现第一个页面的刷新

从不签到 2006-11-13 02:49:37
1.aspx和2.aspx
1载入的时候,弹出2,2中Listbox选择一个值(班级)后,将此值返回给1,比如1班
然后1根据这个值,到数据库查相应的数据(1班所有学生的信息),结果显示在DataGrid中

我用的是vs.net 2003,现在的问题是 怎样根据这个返回值去查数据库呢?
用什么方法呢?

...全文
142 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
从不签到 2006-11-13
  • 打赏
  • 举报
回复
多谢
ParadiseX 2006-11-13
  • 打赏
  • 举报
回复
首先你要听说过下面的JS的用途,它是ASPX为了在客户端调用服务器方法而自动生成的一段脚本代码
<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>

由此我们可以知道ASPX为了能够执行服务器方法,是使用了HIDDEN作标记,然后调用SUBMIT提交页面,执行方法。这样的话,我们是不是也可以这样:
你从2页面得到了返回的值后:
<script>
fucntion GetDataformReturnValue(myValue)
{
var theform;
theform = document.Form1;

theform.__MYMETHODNAME.value = "getData";
theform.__MYARG.value = myValue;
theform.submit();
}

然后你在后台判断一下__MYMETHODNAME是不是等于getData,如果等于则调用后台的一个方法:
DataTable = getDataFromDB(__MYARG.value);

这样就可以实现你的要求了,但是强烈不要这样,老师刷新页面。(最关键的是你之前说了一句话:1载入的时候,弹出2....嘿嘿,你这样就完蛋啦,除非你让2是你手动弹出)
ParadiseX 2006-11-13
  • 打赏
  • 举报
回复
//这位兄弟大概是理解错我的意思了,如果用按钮的话,很容易实现。这个我会/
//现在的问题是在2中选择了后,返回一个值给1,然后1立即执行,而不是人工再去点按钮去查询,自动查询

如果这样的话,建议你还是用AJAX的比较好,否则页面的效果很差的,老是刷新。
以下是不用AJAX的操作方法:
从不签到 2006-11-13
  • 打赏
  • 举报
回复
高人们快来啊
从不签到 2006-11-13
  • 打赏
  • 举报
回复
现在不说那个TextBox1_TextChanged 问题了,
把重心转移到查询上来
呵呵~~
kui1015 2006-11-13
  • 打赏
  • 举报
回复
同意ParadiseX(俺的性欲咋就那么低?难道是忘记结扎帖子的缘故?)
从不签到 2006-11-13
  • 打赏
  • 举报
回复
//然后1根据这个值,到数据库查相应的数据(1班所有学生的信息),结果显示在DataGrid中
这个用"select * from table where field = '" + yourvalue + "'"类似方法可以搞定。
至于如何查,你输入SqlConnection, SqlCommand, SqlDataReader这些东西,然后按F1看看MSDN就会了。

----
这位兄弟大概是理解错我的意思了,如果用按钮的话,很容易实现。这个我会
现在的问题是在2中选择了后,返回一个值给1,然后1立即执行,而不是人工再去点按钮去查询,自动查询
九章落地 2006-11-13
  • 打赏
  • 举报
回复
1,如果是兩個aspx文件,要實現返回值並查詢,不簡單。
2,textChagned事件並不是輸入馬上觸發,而是當TextBox失去焦點後才觸發。。。


建議:LZ在同一個頁面裡用<Div>來實現。
ParadiseX 2006-11-13
  • 打赏
  • 举报
回复
//1载入的时候,弹出2,2中Listbox选择一个值(班级)后,将此值返回给1,
这个用JS就可以搞定了,通过opener得到2种的控件的值。

//然后1根据这个值,到数据库查相应的数据(1班所有学生的信息),结果显示在DataGrid中
这个用"select * from table where field = '" + yourvalue + "'"类似方法可以搞定。
至于如何查,你输入SqlConnection, SqlCommand, SqlDataReader这些东西,然后按F1看看MSDN就会了。

//我的TextBox1_TextChanged事件怎么也触发不了
//autopostback 已经 = true 了
//extBox1中输入还是没有响应
这个可不是和WINFORM里一样了,这里所谓的TextChanged ,是你数据提交到服务器后由服务器来判断是否发生了变化,如果变化才触发这个事件。所以你就算设置TRUE也没用。
一个变通的方法是:你用js脚本判断是否文本发生了变化。如果变化了则调用服务器脚本(如果你能使用AJAX来调用是最好了)
从不签到 2006-11-13
  • 打赏
  • 举报
回复
晕了,太简单了没又愿意回答的?
从不签到 2006-11-13
  • 打赏
  • 举报
回复
还有个问题是:
我的TextBox1_TextChanged事件怎么也触发不了
autopostback 已经 = true 了
在TextBox1中输入还是没有响应

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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