从会话加载下拉列表并将其保存到DB

时间:2014-05-02 05:49:35

标签: c# asp.net session


我想知道如何从网格加载会话数据并将其传递到下拉列表的下一页并将其保存在数据库中。

例如:我的网格数据在第1页名称,地址,国家/地区

protected void PassData(object sender, EventArgs e)
    {
        GridViewRow gr = ((sender as LinkButton).NamingContainer as GridViewRow);

        Session["Name"] = gr.Cells[3].Text.Trim();
        Session["Address"] = gr.Cells[4].Text.Trim();
        Session["Country"] = gr.Cells[5].Text.Trim();
   }

我打算在第2页的国家/地区下拉列表中加载国家/地区值 我的下拉列表包含预加载的国家/地区列表,我必须加载我在会话中的国家/地区值["国家"]。
例如:

CountryID  Country
   1       USA
   2       AUSTRALIA
   3       CHINA

所以我用了代码..

ddlCountry.SelectedItem.Text = Session["Country"].ToString();

在我的页面加载中,国家/地区列表会加载

private void BindCountry()
    {
            DataTable dt = new DataTable();
            dt = objUser.SelAllCountry();

            objCommon.BindDropDown(ddlCountry, "CountryID", "CountryName", dt);

            ddlCountry.SelectedValue = "1";        

    }
  

ddlCountry.SelectedItem.Text =我的会话值存在于其中,但是   无法将其存储在我的数据库中..

int country 
objCustomer.Country = int.Parse(ddlCountry.SelectedValue);//state to pass the country value.. i know its wrong i need help over here to save my data.

我' m无法保存新值,它始终将默认值1美国列为l 页面加载

protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            BindCountry();
            //BindState(1);
        }
}

任何人都可以帮我解决这个问题.. 谢谢 - 提前..

2 个答案:

答案 0 :(得分:0)

您正在选择函数 BindCountry()中的第一个值。避免选择..

private void BindCountry()
    {
            DataTable dt = new DataTable();
            dt = objUser.SelAllCountry();
            objCommon.BindDropDown(ddlCountry, "CountryID", "CountryName", dt);
    }

避免使用此行.. ddlCountry.SelectedValue = "1";

答案 1 :(得分:0)

我认为问题是你是page_load()中的绑定下拉列表,尝试将绑定代码放在!IsPostback条件块中。

修改

尝试使用以下语法设置所选索引。

ddlCountry.SelectedIndex = ddlCountry.Items.IndexOf(ddlCountry.Items.FindByText(Session["Country"].ToString()));

上面应该替换为下面的行

ddlCountry.SelectedItem.Text = Session["Country"].ToString();