首页 > 解决方案 > 下拉列表 选择索引 如果没有用户输入则默认

问题描述

如果用户选择 6 个选项之一,我有一个下拉列表可以正常工作。但是,如果由于第一个选项是必需的而未采取任何操作,则所选值将保持空白。

我试图设置默认选择值并通过 Stack Overflow 搜索其他解决方案。代码项目等,但没有任何效果。这可能是我的代码中的基本内容!

    static string prevPage = String.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
        FileUpload1.Attributes["multiple"] = "multiple";

        txtUN.Text = Request.QueryString["SVCCNo"];
        lblid.Text = Session["username"].ToString();
        txtCID.Text = Request.QueryString["CID"];
        lblCID.Text = Request.QueryString["CID"];
        lblSeparator.Text = " - ";
        lblLocation.Text = Request.QueryString["LName"];
        lblAssetName.Text = Request.QueryString["SVCCIDName"];

        if (!IsPostBack)
        {
            prevPage = Request.UrlReferrer.ToString();
        }
    }

    protected void Upload(object sender, EventArgs e)
    {
        string conn = ConfigurationManager.ConnectionStrings["SVCCAssetsDb"].ConnectionString;
        SqlConnection sqlcon = new SqlConnection(conn);
        sqlcon.Open();
        //lblType.Text = "1";

        for (int i = 0; i < Request.Files.Count; i++)
        {
            //move lbl inside loop
            int uniquenuumber = Convert.ToInt32(txtUN.Text);

            HttpPostedFile postedFile = Request.Files[i];
            if (postedFile.ContentLength > 0)
            {
                //lblType.Text = txtType.Text;
                int txttype = 1;
                txttype = Convert.ToInt32(lblType.Text);
                string userid = lblid.Text;
                string fileName = Path.GetFileName(postedFile.FileName);
                postedFile.SaveAs(Server.MapPath("~/Attachment/") + fileName);
                lblMessage.Text += string.Format("<b>{0}</b> uploaded.<br />", fileName);

                string sqlquery = "INSERT INTO Attachment (UserName, FilePath, UniqueNumber, TypeCode) VALUES ('" + userid + "', + '" + fileName + "', + '" + uniquenuumber + "', '" + txttype + "')";
                SqlCommand sqlcmd = new SqlCommand(sqlquery, sqlcon);

                sqlcmd.ExecuteNonQuery();
            }
        }
        sqlcon.Close();
    }

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        var selectedValue = ((DropDownList)sender).SelectedValue;
        if (!string.IsNullOrEmpty(txtType.Text))
        txtType.Text = selectedValue;
        lblType.Text = txtType.Text;
    }

    protected void btnReturn_Click(object sender, EventArgs e)
    {
        Response.Redirect(prevPage);
    }
}

aspx 代码:

多文件上传

文件必须是所有相同类型例如照片



在选择要上传的文件之前选择文件类型
否则选择的文件将被清除清除

标签: c#asp.netvisual-studio

解决方案


根据我的猜测,没有前面的代码:

您对这条线有问题:

int txttype = 1;
txttype = Convert.ToInt32(lblType.Text);

这是因为如果您不从下拉列表中选择另一个项目,则您的标签不会更新,因此会产生问题?

如果是这样(否则只是解释我错在哪里)

您可以在页面加载时对标签类型进行第一次初始化(在 !Page.IsPostBack 条件中!!)

lblType.Text = "Your Default value as string";

实际上,只有在您更改下拉菜单时才会触发选择索引更改事件,在这种情况下,如果您停留在第一项,则不会触发。

但也许还有别的东西,让我们先试试吧!:)


推荐阅读