簡體   English   中英

如何保存下拉列表的名稱而不是其ID?

[英]How to save the name of dropdownlist instead of its ID?

我一直在一個項目中工作,我面臨一個問題,我有兩個下拉列表,分別是選擇類別(ddlcategory)和選擇子類別(ddlsubcategory),它們是 下拉列表的圖像

當我保存數據時,將ID而不是類別名稱和子類別名稱保存到數據庫中,這是我的數據庫值: 我要存儲名稱的ID的存儲值的圖像 這是我已經實現的后台代碼:

 String constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\PROJECT SEM6\Online Tours and Travels\App_Data\ToursandTravels.mdf;Integrated Security=True;User Instance=True";
string query = "";
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindCategoryDropdown();
    }
}
protected void btnpreviewwebsite_Click1(object sender, EventArgs e)
{
    Response.Redirect("http://localhost:50550/Online Tours and Travels/index.aspx");
}
protected void btnlogout_Click(object sender, EventArgs e)
{
    Session.Abandon();
    Session.Clear();
    Response.Redirect("http://localhost:50550/Online Tours and Travels/Admin Panel/LoginForm.aspx");

}
protected void BindCategoryDropdown()
{
    //conenction path for database
    SqlConnection con = new SqlConnection(constr);
    con.Open();
    SqlCommand cmd = new SqlCommand("select * from category", con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    con.Close();
    ddlcategory.DataSource = ds;
    ddlcategory.DataTextField = "Cat_name";
    ddlcategory.DataValueField = "Cat_id";
    ddlcategory.DataBind();
    ddlcategory.Items.Insert(0, new ListItem("--Select--", "0"));
    ddlsubcategory.Items.Insert(0, new ListItem("--Select--", "0"));
}

protected void ddlcategory_SelectedIndexChanged(object sender, EventArgs e)
{
    int categoryid = Convert.ToInt32(ddlcategory.SelectedValue);
    SqlConnection con = new SqlConnection(constr);
    con.Open();
    SqlCommand cmd = new SqlCommand("select * from subcategory where catid=" + categoryid, con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    con.Close();
    ddlsubcategory.DataSource = ds;
    ddlsubcategory.DataTextField = "subcatname";
    ddlsubcategory.DataValueField = "subcatid";
    ddlsubcategory.DataBind();
    ddlsubcategory.Items.Insert(0, new ListItem("--Select--", "0"));

}
protected void btnsave_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(constr);
    String pathName1 = "~/packageimages/" + Path.GetFileName(fileuploadpic1.PostedFile.FileName);
    String pathName2 = "~/packageimages/" + Path.GetFileName(fileuploadpic2.PostedFile.FileName);
    String pathName3 = "~/packageimages/" + Path.GetFileName(fileuploadpic3.PostedFile.FileName);
    query = 
    "insert into package(packname,catid,categoryname,subcatname,packageprice,pic1,pic2,pic3,detail) values('"+txtpackagename.Text+"','"+txtcategoryid.Text+"','"+ddlcategory.Text+"','"+ddlsubcategory.Text+"','"+txtpackageprice.Text+"','"+pathName1+"','"+pathName2+"','"+pathName3+"','"+txtdetails.Text+"') ";
    SqlCommand cmd = new SqlCommand(query, con);
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    fileuploadpic1.SaveAs(Server.MapPath("~/packageimages/" + fileuploadpic1.FileName));
    fileuploadpic2.SaveAs(Server.MapPath("~/packageimages/" + fileuploadpic2.FileName));
    fileuploadpic2.SaveAs(Server.MapPath("~/packageimages/" + fileuploadpic3.FileName));
    txtpackagename.Text = "";
    txtcategoryid.Text = "";
    txtpackageprice.Text = "";
    txtdetails.Text = "";
    string message = "Package Added !!";
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("<script type = 'text/javascript'>");
    sb.Append("window.onload=function(){");
    sb.Append("alert('");
    sb.Append(message);
    sb.Append("')};");
    sb.Append("</script>");
    ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());
}

請幫忙! 謝謝

控件的名稱由aspnet本身生成。 根據控件在控件樹中的位置,它可能會變成這樣:

ctl00$ContentPlaceHolder1$ctl00$TextBox1

但是,如果您真的想獲取名稱,則可以使用UniqueID

string controlName = TextBox1.UniqueID;

回答您的問題-您需要使用

ddlcategory.SelectedItem.Text不是ddlcategory.Text

但如建議的那樣,首先在此處了解有關查詢參數的信息
在此處 using語句示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM