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")); } 另外,让您的查询获取参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- asp.net – 我应该如何使用Identity 2.0和WebAPI
- asp.net-mvc-3 – 尝试检索不存在的列的实体框架
- asp.net-mvc-3 – 在Razor视图中显示List元素
- asp.net – 如何使用MVC Razor生成SVG
- asp.net – 我的URL中的这些随机字符是什么?它们
- asp.net-web-api – OData V4 WebAPI按Enum的Int
- asp.net-mvc – 数据模型需要两个属性之一
- asp.net – 重启后,每个页面的MVC应用程序都很慢
- asp.net-mvc-3 – 视图或控制器中的if或else语句
- ASP.Net添加控件“无法获取[控件]的内部内容,因为
热点阅读