public void Page_Load(Object sender, EventArgs e) {strCnn = "Data Source=localhost;Initial Catalog=0808;User Id=sa;Password=password;";
string strSel = "select * from smallclass";
DataSet ds = new DataSet();
using(
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,new SqlConnection(strCnn)))
{
MyAdapter.Fill(ds,"smallclass");
smallclass.DataSource = ds.Tables[0];
bigclass.DataBind();
}
}
小类:
<asp:dropdownlist id="smallclass" runat="server" DataTextField="title" DataValueField="smallclassid"></asp:dropdownlist>
<asp:button Text="查询" OnClick="Search" runat="server" /><br><br><br>
我先选择小类,然后点击查询以后传到后面的值都是数据库中smallclassid排在第一的值??后面我是这样接受的的?
public void Search(Object sender, EventArgs E)
{
sql = "Select * FROM productlist where 1=1";
int test = int.Parse(smallclass.SelectedValue);sql=sql+" and smallclassid = "+test;sql=sql;
People.DataSource = CreateDataSource();
People.DataBind();
}
望高手指点??
string strSel = "select * from smallclass";
DataSet ds = new DataSet();
using(
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,new SqlConnection(strCnn)))
{
MyAdapter.Fill(ds,"smallclass");
smallclass.DataSource = ds.Tables[0];
bigclass.DataBind();
}
}
小类:
<asp:dropdownlist id="smallclass" runat="server" DataTextField="title" DataValueField="smallclassid"></asp:dropdownlist>
<asp:button Text="查询" OnClick="Search" runat="server" /><br><br><br>
我先选择小类,然后点击查询以后传到后面的值都是数据库中smallclassid排在第一的值??后面我是这样接受的的?
public void Search(Object sender, EventArgs E)
{
sql = "Select * FROM productlist where 1=1";
int test = int.Parse(smallclass.SelectedValue);sql=sql+" and smallclassid = "+test;sql=sql;
People.DataSource = CreateDataSource();
People.DataBind();
}
望高手指点??
解决方案 »
- 调用函数奇怪。。。System.NullReferenceException: 未将对象引用设置到对象的实例
- 水晶报表的webconfig配置问题
- 这样的效果该用什么控件?(内详)
- 在水晶报表问题!急求!谢谢!
- 关于梅花雨日历控件3.0
- 忙忙碌碌又一年,辞职:散分,来者有分...
- 几个.net开源项目
- Asp.net怎么实现像点点那样的“喜欢”功能
- kindeditor4.1.5中如何修改默认字体大小
- 有么有研究Orchard的朋友?
- 请看在我失业一年的份上帮我把这两页从vb.net转换成C#(在线等,等到转换成功为止)
- 如何用一个button调用子函数?急...再弄不出来,工作就没了,大家帮帮忙
int test = int.Parse(smallclass.SelectedValue);sql=sql+" and smallclassid = "+test;sql=sql;是什么?
{
MyAdapter.Fill(ds,"smallclass");
smallclass.DataSource = ds.Tables[0];
bigclass.DataBind();
}
}
这里是不是写错了?
bigclass.DataSource = ds.Tables[0];
bigclass.DataBind();
bigclass.DataBind();//这个地方应该是smallcalss.DataBind();把?
Page_Load下面的代码写在
Page_Load
{
if(!IsPostBack)
{
code
}
}
smallclass.DataSource = ds.Tables[0];
smallclass.DataBind();
这几天做完了一个中型的项目,学到了许多的东西。在做项目的时候遇到问题时都是上csdn看帖子,我想我遇到的问题别人肯定也会碰到,应该说大部分的问题都可以在csdn上找到答案。所以我在csdn学到了很多的知识,谢谢大家!做项目时想,等我做完项目时就总结一些经验,让后来者学习和借鉴或说不再重复我犯的错误,所以就写了这一篇文章,希望对大家有用!
最大的感触就是,csdn上经常有人问,为什么我的dropdownLsit或checkboxlist或其它什么控件不能取到修改后的值,或是不能响应用户的修改(通俗一点的说是老是显示那一个值,不会改变)。其实这个问题最根本的原因是没有完全理解asp.net中页面的执行(处理)过程,今天我们就这个问题说说。
参考msdn中的"web 窗体页处理”(ms-help://MS.VSCC/MS.MSDNVS.2052/Vbcon/html/vbconWebFormsPageProcessingStages.htm),我们先理解一个概念---往返行程:浏览器向用户显示一个窗体,用户与该窗体进行交互,这导致该窗体回发到服务器。但是,因为与服务器组件进行交互的所有处理必须在服务器上发生,这意味着对于要求处理的每一操作而言,必须将该窗体发送到服务器、进行处理、然后返回到浏览器。这一事件序列称作“往返行程”。因此我们不难理解,为什么建议多使用html控件(客户端控件),而不是web控件(服务器端控件);为什么web控件不支持onmouseover、onmouseout事件了。因为它们要每触发一次都要在服务器和客户端间往返一次,也就我们所说的会引起"刷屏" 。但我们可以为web控件增加客户端的事件以支持这些操作,因为有时候必须用到。
理解了"往返行程"后,我们再来理解一下web页面的另一个特性----无状态性:客户端向服务器发送一个请求(譬如你在IE栏输入网址,回车),服务器接到请求,响应请求(处理事件),服务器完成处理后将生成的web页发送回浏览器,然后就清除该页的信息,释放服务器资源。服务再等待下一次请求,即使下一次是请求同一页,服务器重新开始创建和处理该页。服务器就是这样不停的重复这一过程。服务器不记录页面的状态或信息的特性我们就称之为“无状态性”。也许有朋友会问,我的控件每次刷新时会自动保存状态啊,那是因为asp.net引入了视图状态和状态管理,它会自动保持web控件的状态。关于服务器是怎样保存web控件的状态,我想我以后有能力或有时间的时候再写吧。请接着往下看。
理解了这两个基本概念后,我们就来看看asp.net中的服务器处理页面的一个过程,服务器处理页面过程(大概)分以下几个阶段:ASP.NET 页框架初始化(Page_Init() )à 用户代码初始化(page_load()) à 验证(调用任何验证程序 Web 服务器控件的 Validate 方法来执行该控件的指定验证) à 事件处理(处理所引发的特定事件) à 清除(page_unload()),每一阶段会触发不同的事件,阶段后面的括号内容就是该阶段触发的事件。由此我们知道服务器每次执行页面代码的过程就是:page_init() à page_load() à vlidate函数(web控件的验证事件,应具体到实际的应用中)à 引起页面回发的具体事件(例如button 的click事件等) à page_unload()。如果不考虑具体的页面执行,我们可以看出,页面每次处理时,都要执行Page_Init、Page_load、page_unload事件。回到我们的主题,如要我们把dropdownlist 或其它的控件的初始化代码都放在某些方面page_load事件里面执行,那么意思就是每次页面刷新或被请求时控件都被重新初始化了。因此就有了控件的值永远都不会变的问题了。所以我们应该把初始化控件的代码放在:
if (!Page.IsPostBack){ //放在这里}。
说到这里,我想问题就说清楚了,不知你明白了吗?谢谢大家捧场!!欢迎大家讨论和指正。
如果大家想了解视图状态和状态管理,请参见:
ms-help://MS.VSCC/MS.MSDNVS.2052/Vbcon/html/vbconwebformstate.htm
及下面这篇文章:
http://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/Viewstate.asp
如果你想更深的了解页面或控件的执行过程,请参见:
ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconcontrolexecutionlifecycle.htm
{
sql=sql+" and bigclassid = "+Convert.ToInt32(bigclass.SelectedItem.Value);
}
这是不等与空执行的,我要它等于空执行另外一条sql,加个else怎么加??