首页新闻找找看学习计划

关于DataTextField与DataValueField的用法。

0
悬赏园豆:10 [已解决问题] 解决于 2012-11-07 09:15

前台代码:

<tr>
                <td style="width:20%">
                   部门:
                </td>
                <td>
                   <asp:DropDownList ID="dpDept" runat="server" Width="81%">
                    </asp:DropDownList>
                </td>
            </tr>

后台代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            DADAL dal = new DADAL();
            DropDownList dpdept = FindControl("dpDept") as DropDownList;
            dpdept.DataSource = dal.GetDEPT();
            dpdept.DataTextField = "DEPT_NAME";
            dpdept.DataValueField = "DEPT_CODE";
            dpdept.DataBind();

         }

数据库:

用户界面:

我想实现在界面“部门”里选择不同的部门时对应的 

string dept = this.dpDept.SelectedValue;这个值读取到对应的DEPT_CODE值,这样就可以将dept写进查询条件里。

问题:每次运行时,在界面无论选择哪个部门,那个dept值都是16,就是

 dpdept.DataValueField = "DEPT_CODE";绑定不成功,我哪里没有注意吗?

请大家帮忙!

pengjw的主页 pengjw | 初学一级 | 园豆:3
提问于:2012-11-06 15:36
< >
分享
最佳答案
0

把page_load里面的语句包在if(!ispostback)里面

收获园豆:8
飞来飞去 | 老鸟四级 |园豆:2057 | 2012-11-06 15:47

太谢谢你了!万分感谢,我弄了一下午没找到原因,现在成功了!

能告诉我if(!ispostback)到底有啥意义吗?好像有很多的代码都必须放在这个里面才能实现功能。再次感谢!

pengjw | 园豆:3 (初学一级) | 2012-11-06 16:21

@pengjw: 

页面有两种访问方式,1直接访问,2页面中的控件发起的页面postback

不管哪种方式都会执行page_load里面的函数

如果绑定是直接写在这里面的话,页面中的控件会重新绑定

飞来飞去 | 园豆:2057 (老鸟四级) | 2012-11-06 16:29

@飞来飞去: 我明白了,也就是我每次点击控件运行程序的时候pageload里面的都会执行一下?而if(!postback)里的只在第一次加载页面时执行,是这样的吗?

pengjw | 园豆:3 (初学一级) | 2012-11-06 17:12

@pengjw: 基本就是这样,所以用服务器控件的少了

飞来飞去 | 园豆:2057 (老鸟四级) | 2012-11-06 20:02
其他回答(4)
0

一个隐藏值 一个显示出来

那sql语句必须有两个查询条件,你看看你那个条件传过去没

收获园豆:2
oppoic | 园豆:560 (小虾三级) | 2012-11-06 15:40

不懂,“那sql语句必须就有两个表了”,那个GetDept()方法:

public DataSet GetDEPT()
        {
            string sql = "select * from DA_DEPT";
            DataSet ds = OracleHelper.ExecuteQuery(sql);
            return ds;
        }

支持(0) 反对(0) pengjw | 园豆:3 (初学一级) | 2012-11-06 15:44

@pengjw: 加个断点在return ds那  看看ds里的datetable里都是什么数据  看看有没有DEPT_NAME和DEPT_CODE  有就得调试前台页面了

支持(0) 反对(0) oppoic | 园豆:560 (小虾三级) | 2012-11-06 15:46
0

谢谢。今天刚刚碰到这个问题,isPostBack的原理一直都不是很明白的。

囧月言炎 | 园豆:260 (菜鸟二级) | 2013-04-19 07:50
0

基本上明白了,被这个东西搞糊涂了。

dongmusic | 园豆:247 (菜鸟二级) | 2013-05-15 11:19
0

还有人关注这个问题吗?我今天遇到了,按照楼主提示,把page_load里面的语句包在if(!ispostback)里面没有效果呢!

蔚蓝梦 | 园豆:204 (菜鸟二级) | 2020-01-16 22:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册