dropdownlist的取值有关问题万分感谢

dropdownlist的取值问题万分感谢
我使用dropdownlist控件来获取值,在后台对ddlclass绑定了数据库,代码是这样的,
<tr>
        <td width ="25%">职位分类
        </td>
        <td style ="width:100px"><asp:DropDownList ID ="ddlClass" runat ="server" 
               DataValueField ="ClsID" DataTextField="ClsName" 
                >
  

    </asp:DropDownList>
            </td>
        
    </tr>
    <tr><td>公司编号</td>
    <td><asp:DropDownList ID ="ddlCID" runat ="server" 
                 DataTextField="ComName" DataValueField="CID" AutoPostBack="false"
           >
             
    </asp:DropDownList></td>
    </tr>
        <tr >
        <td class="style1" >职位介绍
        </td>
        <td class="style1" >
        <textarea id="Detail" atomicselection="True" name="Detail" ></textarea>
        
        </td>
    </tr>
    
        <tr align="center">
        <td colspan="2">

            <asp:ImageButton ID="PubID" runat="server" Text="发布职位" onclick="PubID_Click" ImageUrl="~/images/提交.PNG" Height="29px" Width="68px" />

        </td>
    </tr>
后台
提交按钮的后台代码为
if (PName.Text.Trim() == "") {

            Response.Write("<script> alert('请输入职位名称')</script>");
            PName.Focus();


        }
        string pname = PName.Text.Trim();
       
        int pid = int.Parse(PosID.Text.Trim());
        string cname = Session["ComName"].ToString();
        string clsid = ddlClass.SelectedItem.Value;//用这句来获得工作分类的编码如果选择的是服务类应该就是5
      
        string strdt = DateTime.Now.ToString();
       // string detail = Detail.Text.trim();
        if (!cname.Equals(ddlCID.Text))
        {
            Response.Write("您只能发布自己公司的职位");
        }
        else
        {
            Position ps = new Position();
            ps.PosID1 = pid;
            ps.CID1 = int.Parse(ddlCID.SelectedValue);//这句来获得发布职位的公司编号
            ps.ComName1 = cname;
            ps.ClsID1 = int.Parse(clsid);
            ps.PosName1 = pname;
            ps.PubTime1 = strdt;
            ps.Detail1 = null;
            ps.publish();
            Response.Write("<script>alert('已经发布成功')</script>");
            PName.Text = "";
            PName.Focus();
        }

    }
但是现在出现的问题是当页面加载的时候,比如工作分类默认的为制造业,编号为1,则当我重新选择为服务业的时候(应该获得的值为5的时候),string clsid = ddlClass.SelectedItem.Value这句获得的总是1,也就是说页面总是选择加载时候的数据,而不是我选择的下拉框的数据,我曾用autopostback ,但是也不行,求大神指教,帮助一下,万分感谢

------解决思路----------------------
ddlClass.SelectedItem.Value原本就没有错,或许不是这个问题,而是其它方面的问题,你不妨再认真检查,或者放一个静态的ddl取值试验试验看
------解决思路----------------------
没有时间看你的代码,简单说2个检查点:

1. 回发时不能重新绑定数据。回发时在你的Page_Load中根本不需要读取数据库,asp.net会自动给你重新填入所有数据。有些人在Page_Load中不判断 (!IsPostback) 条件而重复重新绑定了数据,就会把数据搞乱,事件就不能触发了。

2. 检查你的“值为5”的Item在后台绑定数据中到底存在否。有些人只是在客户端传值,而服务器端并没有哪个Item有对应的值,这时候就需要访问 DropdownList 控件的 Text 属性而不是 SelectedValue 属性,因为在后台没有匹配这个值的 SelectItem。
------解决思路----------------------
根本没贴出绑定下拉列表的代码和page_load里的代码

可以说贴的这些东西都没啥用

应该就是如SP1234所说,你不管用户选了东西还是首次加载页面,都给下拉列表重新绑定数据了

那么当然你重新绑定了数据,用户选的就白选了
------解决思路----------------------
估计肯定是回发重新绑定数据了