Asp.net DROPDOWNLIST选择的指数变化,框TextChanged事件不火? (C#) [英] Asp.net Dropdownlist selected index changed AND TextChanged Events not Fire? (C#)

查看:240
本文介绍了Asp.net DROPDOWNLIST选择的指数变化,框TextChanged事件不火? (C#)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的ASP> NET(C#)。但我在使用前WinForm的。

在我的项目,我有两个下拉列表。如果我改变的人,......第二会改变汽车。

不过,即使活动也没有在ASP.net射击。如果没有事件如何我管理的?

 < D​​IV ID ='DIV1级=UI内容UI的身体一个=服务器>
    < ASP:DropDownList的ID =ddlOutlet=服务器的AutoPostBack =真onselectedindexchanged =ddlOutlet_SelectedIndexChanged
        ontextchanged =ddlOutlet_TextChanged>
                < / ASP:DropDownList的>
    < BR />
    < ASP:DropDownList的ID =ddlServedAt=服务器>
                < / ASP:DropDownList的>
    < BR />
    < ASP:按钮的ID =btnLogin=服务器文本=登录/>
< / DIV>

C#

我已经在页面加载事件既下拉列表中添加的条目。但是,当我改变ddlOutlet选定的索引改变事件不触发。于是,我就框TextChanged事件也。但是什么都没有发生。什么是问题?

网页加载事件 -

 保护无效的Page_Load(对象发件人,EventArgs的发送)
{
    HelpingFunctions马力=新HelpingFunctions();    字符串ID =的Request.QueryString [身份证];    的MySqlConnection连接=新的MySqlConnection(服务器= 192.168.1.100;用户名= mcubic;密码= MCS @ $ 2011;数据库= mcubic;);
    查询字符串=SELECT c.Outlet_Master_Name,d.Fbserved_Served FROM mcs_user一个,mcs_user_outlet B,outlet_master C,fb_served d其中a.Mcs_User_Id ='+身份证+和
                    +a.Mcs_User_Id = b.Mcs_User_Outlet_User_Id和c.Outlet_Master_Id = b.Mcs_User_Outlet_Outlet_Id和c.Outlet_Master_Id = d.Fbserved_outletid;
    MySqlCommand的命令=新的MySqlCommand(查询,连接);
    connection.Open();
    MySqlDataReader将读卡器= Command.ExecuteReader却();
    而(Reader.Read())
    {
        ddlOutlet.Items.Add器(Reader [0]的ToString());
        ddlServedAt.Items.Add器(Reader [1]的ToString());
    }
    connection.close()时;
}

选定的项目 -

 保护无效ddlOutlet_SelectedIndexChanged(对象发件人,EventArgs的发送)
{
    的MySqlConnection连接=新的MySqlConnection(服务器= 192.168.1.100;用户名= mcubic;密码= MCS @ $ 2011;数据库= mcubic;);
    查询字符串=从fb_served选择Fbserved_Served,其中Fbserved_outletid =(从outlet_master那里Outlet_Master_Name =选择Outlet_Master_Id'+ ddlOutlet.SelectedItem.ToString()+');
    MySqlCommand的命令=新的MySqlCommand(查询,连接);
    connection.Open();
    MySqlDataReader将读卡器= Command.ExecuteReader却();
    而(Reader.Read())
    {
        ddlServedAt.SelectedItem.Value =读卡器[0]的ToString();
    }
    connection.close()时;
}

我读了一些同样的问题,解决问题的方法,但他们告诉设定的AutoPostBack =真。我检查了也。

我不知道为什么ASP.net难事件触发也?

已更新问题

在我的项目,..我用jquerymobile(http://jquerymobile.com/)与ASP.Net和MySQL。
我有两个下拉列表控件和一个按钮。

但是,当我改变ddlOutlet选定的索引改变事件不触发。按钮后点击的事件是正确解雇。但在此之前,他们不火。我do't知道为什么它的发生。

我给我的完整code以下。

我的完整ASPX文件: -

 <%@页面语言=C#AutoEventWireup =真codeBehind =OutLet.aspx.cs继承=MobileApp.OutLet%GT;!< D​​OCTYPE HTML PUBLIC -  // W3C // DTD XHTML 1.0过渡// ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">< HTML的xmlns =htt​​p://www.w3.org/1999/xhtml>
<头=服务器>
    <标题>< /标题>
     < META NAME =视口CONTENT =WIDTH =设备的宽度,高度=设备的高度;初始规模= 1.0;最大规模= 1.5;用户可扩展性=无; />
     <链接HREF =样式/ jquery.mobile-1.0b3.css的rel =stylesheet属性类型=文/ CSS/>    <脚本SRC =脚本/ jQuery的-UI-1.8.16.custom.min.js类型=文/ JavaScript的>< / SCRIPT>
    <脚本SRC =脚本/ jQuery的-1.6.2.min.js类型=文/ JavaScript的>< / SCRIPT>
    <脚本SRC =脚本/ jquery.mobile-1.0b3.js类型=文/ JavaScript的>< / SCRIPT>
< /头>
<身体GT;
    <表ID =form1的=服务器数据AJAX =false的>
        < D​​IV ID =mainheader级=UI头固定UI的酒吧一个>        < / DIV>
        < D​​IV ID ='DIV1级=UI内容UI的身体一个=服务器>           <% - < ASP:的UpdatePanel ID =UpdatePanel1=服务器>
                <&的ContentTemplate GT; - %GT;
                    < ASP:DropDownList的ID =ddlOutlet=服务器
    的AutoPostBack =真onselectedindexchanged =ddlOutlet_SelectedIndexChanged
    ontextchanged =ddlOutlet_TextChanged>
                    < / ASP:DropDownList的>
                    < BR />
                    < ASP:DropDownList的ID =ddlServedAt=服务器的AutoPostBack =真>
                    < / ASP:DropDownList的>
                    < BR />
                    < ASP:按钮的ID =btnLogin=服务器文本=登陆
                的onclick =btnLogin_Click/>
               <% - < /&的ContentTemplate GT;
            < / ASP:的UpdatePanel> - %GT;
        < / DIV>
    < /表及GT;
< /身体GT;
< / HTML>

我的code -

 使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.UI.WebControls;
使用MySql.Data.MySqlClient;命名空间的一个MobileApp
{
    公共部分类出口:System.Web.UI.Page
    {
        保护无效的Page_Load(对象发件人,EventArgs的发送)
        {
            HelpingFunctions马力=新HelpingFunctions();            字符串ID =的Request.QueryString [身份证];
            如果(!Page.IsPostBack)
            {
                的MySqlConnection连接=新的MySqlConnection(服务器= 192.168.1.100;用户名= mcubic;密码= MCS @ $ 2011;数据库= mcubic;);
                查询字符串=SELECT c.Outlet_Master_Name,d.Fbserved_Served FROM mcs_user一个,mcs_user_outlet B,outlet_master C,fb_served d其中a.Mcs_User_Id ='+身份证+和
                                +a.Mcs_User_Id = b.Mcs_User_Outlet_User_Id和c.Outlet_Master_Id = b.Mcs_User_Outlet_Outlet_Id和c.Outlet_Master_Id = d.Fbserved_outletid;
                MySqlCommand的命令=新的MySqlCommand(查询,连接);
                connection.Open();
                MySqlDataReader将读卡器= Command.ExecuteReader却();
                而(Reader.Read())
                {
                    ddlOutlet.Items.Add器(Reader [0]的ToString());
                    ddlServedAt.Items.Add器(Reader [1]的ToString());
                }
                connection.close()时;
            }        }        保护无效ddlOutlet_SelectedIndexChanged(对象发件人,EventArgs的发送)
        {
            的MySqlConnection连接=新的MySqlConnection(服务器= 192.168.1.100;用户名= mcubic;密码= MCS @ $ 2011;数据库= mcubic;);
            查询字符串=从fb_served选择Fbserved_Served,其中Fbserved_outletid =(从outlet_master那里Outlet_Master_Name =选择Outlet_Master_Id'+ ddlOutlet.SelectedItem.ToString()+');
            MySqlCommand的命令=新的MySqlCommand(查询,连接);
            connection.Open();
            MySqlDataReader将读卡器= Command.ExecuteReader却();
            而(Reader.Read())
            {
                ddlServedAt.SelectedValue =读卡器[0]的ToString();
            }
            connection.close()时;
        }        保护无效ddlOutlet_TextChanged(对象发件人,EventArgs的发送)
        {
            //的MySqlConnection连接=新的MySqlConnection(服务器= 192.168.1.100;用户名= mcubic;密码= MCS @ $ 2011;数据库= mcubic;);
            //查询字符串=从fb_served选择Fbserved_Served,其中Fbserved_outletid =(从outlet_master那里Outlet_Master_Name =选择Outlet_Master_Id'+ ddlOutlet.SelectedItem.ToString()+');
            // MySqlCommand的命令=新的MySqlCommand(查询,连接);
            //connection.Open();
            // MySqlDataReader将读卡器= Command.ExecuteReader却();
            //而(Reader.Read())
            // {
            // ddlServedAt.SelectedItem.Value =读卡器[0]的ToString();
            //}
            //connection.Close();
        }        保护无效btnLogin_Click(对象发件人,EventArgs的发送)
        {        }
    }
}


解决方案

在你的的Page_Load Page.IsPostBack 尝试C>事件...

 保护无效的Page_Load(对象发件人,EventArgs的发送)
{
    如果(!Page.IsPostBack)
    {
        //你的页面加载code .....
    }
}

编辑 - 1

样品$ C $ ASPX页面中的Web应用程序C

 <%@页面语言=C#AutoEventWireup =真codeBehind =WebForm1.aspx.cs中继承=WebApplication1.WebForm1%GT;!< D​​OCTYPE HTML PUBLIC -  // W3C // DTD XHTML 1.0过渡// ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">< HTML的xmlns =htt​​p://www.w3.org/1999/xhtml>
<头=服务器>
    <标题>< /标题>
< /头>
<身体GT;
    <表ID =form1的=服务器>
    < D​​IV>
     < ASP:DropDownList的ID =ID1=服务器的AutoPostBack =真
            onselectedindexchanged =id1_SelectedIndexChanged>
        &所述; asp的:列表项文本=1值=1>&下; / ASP:列表项>
        < ASP:ListItem的文本=2VALUE =2>< / ASP:ListItem的>
        < / ASP:DropDownList的>
        < ASP:DropDownList的ID =ID2=服务器>< / ASP:DropDownList的>
    < / DIV>
    < /表及GT;
< /身体GT;
< / HTML>


code的样品code的Web应用程序背后

 使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.UI.WebControls;命名空间WebApplication1
{
    公共部分类WebForm1的:System.Web.UI.Page
    {
        保护无效的Page_Load(对象发件人,EventArgs的发送)
        {        }
        保护无效id1_SelectedIndexChanged(对象发件人,EventArgs的发送)
        {        }
    }
}


样品$ C $ ASPX页面的网站C

 <%@页面语言=C#AutoEventWireup =真codeFILE =Default4.aspx.cs继承=Default4%GT;!< D​​OCTYPE HTML PUBLIC -  // W3C // DTD XHTML 1.0过渡// ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
< HTML的xmlns =htt​​p://www.w3.org/1999/xhtml>
<头=服务器>
    <标题>< /标题>
< /头>
<身体GT;
    <表ID =form1的=服务器>
    < D​​IV>
        < ASP:DropDownList的ID =ID1=服务器的AutoPostBack =真
            onselectedindexchanged =id1_SelectedIndexChanged>
        &所述; asp的:列表项文本=1值=1>&下; / ASP:列表项>
        < ASP:ListItem的文本=2VALUE =2>< / ASP:ListItem的>
        < / ASP:DropDownList的>
        < ASP:DropDownList的ID =ID2=服务器>< / ASP:DropDownList的>
    < / DIV>
    < /表及GT;
< /身体GT;
< / HTML>


code的样品code在网站背后

 使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.UI.WebControls;公共部分类Default4:System.Web.UI.Page
{
    保护无效的Page_Load(对象发件人,EventArgs的发送)
    {    }
    保护无效id1_SelectedIndexChanged(对象发件人,EventArgs的发送)
    {    }
}

I am new to ASP>NET(C#). But I am using Winform before.

In my Project I have two dropdown list. if i change the one,.. the second will change auto.

But even event also not firing in ASP.net. Without event how to i manage that?.

<div id="Div1" class="ui-content ui-body-a" runat="server">
    <asp:dropdownlist id="ddlOutlet" runat="server" autopostback="True" onselectedindexchanged="ddlOutlet_SelectedIndexChanged"
        ontextchanged="ddlOutlet_TextChanged">
                </asp:dropdownlist>
    <br />
    <asp:dropdownlist id="ddlServedAt" runat="server">
                </asp:dropdownlist>
    <br />
    <asp:button id="btnLogin" runat="server" text="LogIn" />
</div>

C#

I already Added items in both dropdown list in page load event. But When I change the ddlOutlet selected index changed Event not firing. So I tried to TextChanged Events Also. But nothing happened. What is problem?.

Page Load Event -

protected void Page_Load(object sender, EventArgs e)
{
    HelpingFunctions hp = new HelpingFunctions();

    string id = Request.QueryString["id"];

    MySqlConnection connection = new MySqlConnection("server=192.168.1.100;username=mcubic;password=mcs@2011$;database=mcubic;");
    string query = "SELECT c.Outlet_Master_Name,d.Fbserved_Served FROM mcs_user a, mcs_user_outlet b,outlet_master c,fb_served d WHERE a.Mcs_User_Id='" + id + "' and"
                    + " a.Mcs_User_Id = b.Mcs_User_Outlet_User_Id and c.Outlet_Master_Id = b.Mcs_User_Outlet_Outlet_Id and c.Outlet_Master_Id=d.Fbserved_outletid";           
    MySqlCommand command = new MySqlCommand(query, connection);
    connection.Open();
    MySqlDataReader Reader = command.ExecuteReader();
    while (Reader.Read())
    {
        ddlOutlet.Items.Add(Reader[0].ToString());
        ddlServedAt.Items.Add(Reader[1].ToString());
    }
    connection.Close();


}

Selected Item -

protected void ddlOutlet_SelectedIndexChanged(object sender, EventArgs e)
{
    MySqlConnection connection = new MySqlConnection("server=192.168.1.100;username=mcubic;password=mcs@2011$;database=mcubic;");
    string query = "select Fbserved_Served from fb_served where Fbserved_outletid = (select Outlet_Master_Id from outlet_master where Outlet_Master_Name ='" + ddlOutlet.SelectedItem.ToString() + "')";
    MySqlCommand command = new MySqlCommand(query, connection);
    connection.Open();
    MySqlDataReader Reader = command.ExecuteReader();
    while (Reader.Read())
    {
        ddlServedAt.SelectedItem.Value = Reader[0].ToString();
    }
    connection.Close();
}

I read some same issue problem solutions, but they told to set AutoPostBack="True". I checked that also.

I don't know why ASP.net hard to Event firing also?.

UPDATED QUESTION

In my Project,.. I am using jquerymobile(http://jquerymobile.com/) with ASP.Net and mysql. I have two drop down list controls and ONE button.

But When I change the ddlOutlet selected index changed Event not firing. After the button Click the Events Are fired Correctly. But Before that They not fire. I do't know Why its happen.

I Give my Complete Code Below.

My Complete ASPX File :-

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OutLet.aspx.cs" Inherits="MobileApp.OutLet" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
     <meta name="viewport" content="width=device-width; height=device-height; initial-scale=1.0; maximum-scale=1.5; user-scalable=no;" />
     <link href="Styles/jquery.mobile-1.0b3.css" rel="stylesheet" type="text/css" />

    <script src="Scripts/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery.mobile-1.0b3.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server" data-ajax="false">
        <div id="mainheader" class="ui-header-fixed ui-bar-a">  

        </div>
        <div id="Div1" class="ui-content ui-body-a" runat="server">

           <%-- <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>--%>
                    <asp:DropDownList ID="ddlOutlet" runat="server" 
    AutoPostBack="True" onselectedindexchanged="ddlOutlet_SelectedIndexChanged" 
    ontextchanged="ddlOutlet_TextChanged">
                    </asp:DropDownList>
                    <br />
                    <asp:DropDownList ID="ddlServedAt" runat="server" AutoPostBack="True">
                    </asp:DropDownList>
                    <br />
                    <asp:Button ID="btnLogin" runat="server" Text="LogIn" 
                onclick="btnLogin_Click" />
               <%-- </ContentTemplate>
            </asp:UpdatePanel>   --%>       
        </div>
    </form>
</body>
</html>

my Code -

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;

namespace MobileApp
{
    public partial class OutLet : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HelpingFunctions hp = new HelpingFunctions();

            string id = Request.QueryString["id"];
            if (!Page.IsPostBack)
            {
                MySqlConnection connection = new MySqlConnection("server=192.168.1.100;username=mcubic;password=mcs@2011$;database=mcubic;");
                string query = "SELECT c.Outlet_Master_Name,d.Fbserved_Served FROM mcs_user a, mcs_user_outlet b,outlet_master c,fb_served d WHERE a.Mcs_User_Id='" + id + "' and"
                                + " a.Mcs_User_Id = b.Mcs_User_Outlet_User_Id and c.Outlet_Master_Id = b.Mcs_User_Outlet_Outlet_Id and c.Outlet_Master_Id=d.Fbserved_outletid";
                MySqlCommand command = new MySqlCommand(query, connection);
                connection.Open();
                MySqlDataReader Reader = command.ExecuteReader();
                while (Reader.Read())
                {
                    ddlOutlet.Items.Add(Reader[0].ToString());
                    ddlServedAt.Items.Add(Reader[1].ToString());
                }
                connection.Close();
            }

        }

        protected void ddlOutlet_SelectedIndexChanged(object sender, EventArgs e)
        {
            MySqlConnection connection = new MySqlConnection("server=192.168.1.100;username=mcubic;password=mcs@2011$;database=mcubic;");
            string query = "select Fbserved_Served from fb_served where Fbserved_outletid = (select Outlet_Master_Id from outlet_master where Outlet_Master_Name ='" + ddlOutlet.SelectedItem.ToString() + "')";
            MySqlCommand command = new MySqlCommand(query, connection);
            connection.Open();
            MySqlDataReader Reader = command.ExecuteReader();
            while (Reader.Read())
            {
                ddlServedAt.SelectedValue = Reader[0].ToString();
            }
            connection.Close();
        }

        protected void ddlOutlet_TextChanged(object sender, EventArgs e)
        {
            //MySqlConnection connection = new MySqlConnection("server=192.168.1.100;username=mcubic;password=mcs@2011$;database=mcubic;");
            //string query = "select Fbserved_Served from fb_served where Fbserved_outletid = (select Outlet_Master_Id from outlet_master where Outlet_Master_Name ='" + ddlOutlet.SelectedItem.ToString() + "')";
            //MySqlCommand command = new MySqlCommand(query, connection);
            //connection.Open();
            //MySqlDataReader Reader = command.ExecuteReader();
            //while (Reader.Read())
            //{
            //    ddlServedAt.SelectedItem.Value = Reader[0].ToString();
            //}
            //connection.Close();
        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {

        }
    }
}

解决方案

try by Adding Page.IsPostBack in your page_Load event...

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        //your page load code.....
    }
}

EDIT - 1

Sample Code of ASPX page in Web Application

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <asp:DropDownList  id="id1" runat="server" AutoPostBack="true" 
            onselectedindexchanged="id1_SelectedIndexChanged">
        <asp:ListItem Text="1" Value="1"></asp:ListItem>
        <asp:ListItem Text="2" Value="2"></asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList  id="id2" runat="server"></asp:DropDownList>
    </div>
    </form>
</body>
</html>


Sample code of code behind in Web Application

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void id1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}


Sample code of ASPX page in Website

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList  id="id1" runat="server" AutoPostBack="true" 
            onselectedindexchanged="id1_SelectedIndexChanged">
        <asp:ListItem Text="1" Value="1"></asp:ListItem>
        <asp:ListItem Text="2" Value="2"></asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList  id="id2" runat="server"></asp:DropDownList>
    </div>
    </form>
</body>
</html>


Sample code of Code behind in Website

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default4 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void id1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}

这篇关于Asp.net DROPDOWNLIST选择的指数变化,框TextChanged事件不火? (C#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆