加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.Net下拉列表始终返回按钮单击事件的第一个值

发布时间:2020-12-16 03:58:53 所属栏目:asp.Net 来源:网络整理
导读:我试图从一个简单的asp.net表单中节省价值. 我在页面上几乎没有像下拉菜单那样的控件.文本框的 我在页面加载时填写了第一个下拉菜单Language;触发post-bask on same以填充第二个下拉ddCategoryType,它根据所选语言填充正确的值,但问题是当我尝试获取ddCatego
我试图从一个简单的asp.net表单中节省价值.

我在页面上几乎没有像下拉菜单那样的控件.文本框的

我在页面加载时填写了第一个下拉菜单&Language;触发post-bask on same以填充第二个下拉ddCategoryType,它根据所选语言填充正确的值,但问题是当我尝试获取ddCategoryType.SelectedItem.Value的按钮点击事件值的值时总是返回0由于某种原因,我现在无法弄清楚

protected void Page_Load(object sender,EventArgs e)
{
    if (!IsPostBack)
    {
        ddSelectLanguage.Items.Clear();
        ddSelectLanguage.DataSource = DataProvider.GetLanguages();
        ddSelectLanguage.DataBind();
        ddSelectLanguage.Items.Insert(0,new ListItem("Select Language","0"));
    }
    else
    {
        ddCategoryType.Items.Clear();
        String strSql = "SELECT TypeName,TypeID FROM  CategoryType WHERE LangID =" + ddSelectLanguage.SelectedItem.Value.ToString();
        DataSet ds = new DataSet();
        ds = DataProvider.Connect_Select(strSql);
        ddCategoryType.DataSource = ds;
        ddCategoryType.DataBind();
        ddCategoryType.Items.Insert(0,new ListItem("Select Type","0"));
    }
}


protected void btnSaveCategory_Click(object sender,EventArgs e)
{
    objArtCat.LanguageID = int.Parse(ddSelectLanguage.SelectedItem.Value.ToString());
    objArtCat.CategoryName = txtCategoryName.Text;
    objArtCat.CategoryType = int.Parse(ddCategoryType.SelectedItem.Value.ToString());
    objArtCat.CategoryActive = bool.Parse(ddCategoryActive.SelectedItem.Value.ToString());
    try
    {
        //bool result;
        //result = objBLAddArticleCategory.CreateNewArticleCategory(objArtCat);
        //if (result == true)
        //{
        //    Response.Redirect("PageMessage.aspx?msg='Category has been Create Successfully'",true);
        //}
        //else
        //{
        //}
    }
    catch (Exception)
    { }
}

样本.ASPX代码

<div  class="row"></div>
              <div class="row">
            <asp:Label ID="lblSelectLang" CssClass="txtLabel"  Text="Select Language  :" runat="server" ></asp:Label>
            <asp:DropDownList ID="ddSelectLanguage" runat="server" CssClass="ddGeneral" 
                      DataTextField="LangName" DataValueField="LangID" CausesValidation="True" 
                      AutoPostBack="True"  >
            </asp:DropDownList>
         <asp:RequiredFieldValidator ID="rfvddLanguage" runat="server" ErrorMessage="Please Select Language"  ControlToValidate="ddSelectLanguage" 
         InitialValue="Select Language" ValidationGroup="atpAddNewArticle" ></asp:RequiredFieldValidator>
       </div>

       <div class="row">
            <asp:Label ID="lblCategoryName" CssClass="txtLabel" runat="server" Text="Category Name :"></asp:Label>
            <asp:TextBox ID="txtCategoryName" runat="server" CssClass="txtbox300"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RFVtxtAuthorName" runat="server" ErrorMessage="*" 
                ControlToValidate="txtCategoryName" ValidationGroup="atpAddNewArticle"  CssClass="validation"></asp:RequiredFieldValidator>
       </div>

       <div class="row">
            <asp:Label ID="lblCategoryType" CssClass="txtLabel" runat="server" Text="Category Type :"></asp:Label>
            <asp:DropDownList ID="ddCategoryType" runat="server" CssClass="ddGeneral"   DataTextField="TypeName" DataValueField="TypeID" >
            </asp:DropDownList>
       </div>

       <div class="row">
            <asp:Label ID="lblCategoryActive" CssClass="txtLabel" runat="server" Text="Category Active :"></asp:Label>
            <asp:DropDownList ID="ddCategoryActive" runat="server" CssClass="ddGeneral"  >
                <asp:ListItem Value="False" Selected="True">NO</asp:ListItem>
                <asp:ListItem Value="True">YES</asp:ListItem>
            </asp:DropDownList>
       </div>

       <div class="rowButton">
            </br>
            <asp:Button ID="btnUpdateArticle" runat="server" Text="Save Category" CssClass="btn"  ValidationGroup="atpAddNewArticle" onclick="btnSaveCategory_Click" />                <input id="Reset" type="reset" class="btn" value="Reset" />
       </div>

回发后的OutPut for ddCategoryType

<div class="row">
                <span class="txtLabel" id="MainContent_lblCategoryType">Category Type :</span>
                <select class="ddGeneral" id="MainContent_ddCategoryType" name="ctl00$MainContent$ddCategoryType">
    <option value="0" selected="selected">Select Type</option>
    <option value="1">Article</option>
    <option value="2">News</option>
    <option value="3">Sports</option>
    <option value="4">People</option>
    <option value="5">Message</option>

</select>
           </div>

解决方法

由于您希望根据ddSelectLanguage中的选定值填充ddCategoryType,然后根据该交互填充DDL,而不是在Page_Load中填充.

protected void Page_Load(object sender,EventArgs e)
{
    ddSelectLanguage.SelectedIndexChanged += new
        EventHandler(ddSelectLanguage_SelectedIndexChanged);
    if (!IsPostBack)
    {
        ddSelectLanguage.Items.Clear();
        ddSelectLanguage.DataSource = DataProvider.GetLanguages();
        ddSelectLanguage.DataBind();
        ddSelectLanguage.Items.Insert(0,"0"));
    }
}

然后

void ddSelectLanguage_SelectedIndexChanged(object sender,EventArgs e)
 {
        ddCategoryType.Items.Clear();
        String strSql = "SELECT TypeName,"0"));
 }

另外,让您的查询获取参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读