为什么取不到在页面初始化时赋值的字符内容,该怎么解决

为什么取不到在页面初始化时赋值的字符内容
在做了个子页面(window.showModalDialog(...)),在初始化的时候,给dropdownlist控件赋值了。但是为什么在onSelectedIndexChanged事件触发时,这些字符、字符数组都是null或空的。
该怎么解决呢?

CS代码如下:

public partial class Main_SeniorQuery : System.Web.UI.Page
{
    public string str_col_infos;
    public string[,] col_infos = {};
    public string[] col_infos1={};
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.CacheControl = "no-cache";
        Response.AddHeader("Pragma", "No-Cache");
        if (!Page.IsPostBack)
        {

            str_col_infos = Server.UrlDecode(Request.QueryString["obj"].ToString());

            col_infos1 = str_col_infos.Split(new char[] { '|' });
            int i_cols, i, i_remain;
            i_cols = col_infos1.Length / 3;
            col_infos = new string[i_cols, 3];
            for (i = 0; i < col_infos1.Length; i++)
            {
                i_cols = (int)Math.Floor(i * 1.0 / 3);
                i_remain = i % 3;
                col_infos[i_cols, i_remain] = col_infos1[i];
            }



            for (i = 0; i < i_cols; i++)
            {
                ListItem li = new ListItem(col_infos[i, 0], col_infos[i, 1]);
                ddl_column1.Items.Add(li);
                ddl_column2.Items.Add(li);

            }

        }
        else {
            //col_infos = Request.QueryString("col_infos");
        }
        
        
    }

    protected void ddl_column2_SelectedIndexChanged(object sender, EventArgs e)
    {
        int i_selected;
        i_selected = ddl_column1.SelectedIndex; //调试时,看到str_col_infos就是null了
        ddl_compare2.Items.Clear();
        //if (col_infos[i_selected, 2] == "string")
        //{
        //    ddl_compare2.Items.Add(new ListItem("等于"));
        //    ddl_compare2.Items.Add(new ListItem("包含"));
        //}
        
    }
}

------解决思路----------------------
请先了解webform的机制
你将if (!Page.IsPostBack)这段的感叹号去掉就行了