首页 新闻 会员 周边

简单的DropDownList绑定问题!

0
悬赏园豆:10 [已解决问题] 解决于 2009-11-29 08:10

我想用DropDownList绑定一个分类表,然后点击一个按钮后获得相应分类的编号,很简单。

Code

 

但是不知为什么我每次获取的都是1,也就是第一个项的value,点击按钮后自动跑到第一项。我没有在page_load中加IsPostBack啊。

但是如果我不用代码写,用数据绑定控件,赋给dropdownlist 的话,就没有问题。点击按钮后还是保持选择的项。

请高手指教我错在哪里?

131413的主页 131413 | 初学一级 | 园豆:50
提问于:2009-11-27 09:44
< >
分享
最佳答案
0

顶楼上答案,你目前的写法必须加上IsPostBack。至于你说的"用数据绑定控件,赋给dropdownlist 的话..."这个和你目前这样子的写法是不同的,你目前的写法简单说就是只要页面需要执行哪么page_load中的代码都会重新执行一次,这样子也就会造成dropdownlist的数据被重新加载。

而数据控件不会出现这样子的问题,最直白的说,他绑定的数据不是放在page_load中执行的...

收获园豆:10
西越泽 | 专家六级 |园豆:10775 | 2009-11-27 11:03
既然点击了Button之后,页面会首先执行PageLoad事件,然后执行Buttone3_Click事件,那么如果我在PageLoad中加上 if (!IsPostBack) { string strSql = "select * from ITNewsClass"; string strCon = System.Configuration.ConfigurationManager.ConnectionStrings["DotNetEyeDataBaseConnString"].ToString(); SqlConnection con = new SqlConnection(strCon); SqlCommand cmd = new SqlCommand(strSql, con); con.Open(); SqlDataReader rd = cmd.ExecuteReader(); DropDownList1.DataSource = rd; DropDownList1.DataTextField = "NewsClass"; DropDownList1.DataValueField = "NewsClassID"; DropDownList1.DataBind(); con.Close(); } 这样点击按钮后dropdownlist中就没有数据了啊
131413 | 园豆:50 (初学一级) | 2009-11-27 12:30
@卡索:如果这个还有问题的话 给我邮件,我的邮件是spank218@163.com
西越泽 | 园豆:10775 (专家六级) | 2009-11-27 22:13
去掉aspx页面中的这句话 EnableViewState="false" 然后在你的page_load中加入if (!IsPostBack) { }
西越泽 | 园豆:10775 (专家六级) | 2009-11-28 23:12
其他回答(4)
0

得加上IsPostBack判断,要不然每次点击按钮把请求回发给服务器后都会执行page_load中的事件,也就是dropdownlist 被重新加载了一次。

dege301 | 园豆:2825 (老鸟四级) | 2009-11-27 10:02
0

很简单,因为在点击了Button之后,页面会首先执行PageLoad事件,然后执行Buttone3_Click事件.

解决办法就是:

在PageLoad中加入一个ispostback,进行判断是否是首次执行即可

Pwd | 园豆:158 (初学一级) | 2009-11-27 11:36
PageLoad中加上 if (!IsPostBack) ,点击按钮后dropdownlist中就没有数据了啊
支持(0) 反对(0) 131413 | 园豆:50 (初学一级) | 2009-11-27 12:31
0

Page_Load的時候,重新綁定了DropdownList了。

在這裡綁定一次就好拉。

if(!IsPostback)
{


}

綁定之後會通過viewstate記錄該DropdownList的內容的。

回傳的時候就不用重新bind了。

woody.wu | 园豆:3621 (老鸟四级) | 2009-11-27 12:34
我在pageload中加了 f(!IsPostback) { } 是只有页面第一次加载的时候绑定,但是我点击按钮后dropdownlist中的数据就没了啊,也就获取不到我想要的值了啊。
支持(0) 反对(0) 131413 | 园豆:50 (初学一级) | 2009-11-27 14:07
EnableViewState="TRUE" <asp:DropDownList ID="DropDownList1" runat="server" Enabled="True"> </asp:DropDownList>
支持(0) 反对(0) woody.wu | 园豆:3621 (老鸟四级) | 2009-11-27 15:43
@woody.wu:默认就为TRUE吧,我加上了,还是不行
支持(0) 反对(0) 131413 | 园豆:50 (初学一级) | 2009-11-28 10:16
0

上面都是正解,哈哈!

Tom-X | 园豆:515 (小虾三级) | 2009-11-27 13:42
你试试在pageload中加上 if(!IsPostback) { } 不能实现点击按钮时获取dropdownlist中选则的值
支持(0) 反对(0) 131413 | 园豆:50 (初学一级) | 2009-11-27 14:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册