C# DropDownList事件未在AutoPostBack设置为true时触发

C# DropDownList事件未在AutoPostBack设置为true时触发,c#,asp.net,events,C#,Asp.net,Events,我的网页中有DropDownList,每次用户更改DropDownList中的选定值时,我都会填充文本框 我的问题是,当我更改此值时,此事件未触发。有趣的是,只有当我更改值并按下按钮时才会触发此事件,这将创建新的请求 我尝试将AutoPostBack值更改为true,尝试更改ViewStateMode,并尝试在textChanged事件上启动此函数。 我还加了条件!isPostBack在数据绑定函数之前 if (!IsPostBack) { LoadDatabaseContent();

我的网页中有DropDownList,每次用户更改DropDownList中的选定值时,我都会填充文本框

我的问题是,当我更改此值时,此事件未触发。有趣的是,只有当我更改值并按下按钮时才会触发此事件,这将创建新的请求

我尝试将AutoPostBack值更改为true,尝试更改ViewStateMode,并尝试在textChanged事件上启动此函数。 我还加了条件!isPostBack在数据绑定函数之前

if (!IsPostBack)
{
    LoadDatabaseContent();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();

    byte[] buf = new byte[8192];

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://localhost:44333/Backend2.aspx?update=true&id=" + DropDownList1.SelectedItem.Text);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    Stream resStream = response.GetResponseStream();
    int count;  
    do
    {
        count = resStream.Read(buf, 0, buf.Length);
        if (count != 0)
        {
            string tempString = Encoding.ASCII.GetString(buf, 0, count);

            sb.Append(tempString);
        }
    }
    while (count > 0);
    Response.Write(sb.ToString());

    //createTextBox.Text = sb.ToString();

    resStream.Dispose();
    response.Dispose();
}
下面是事件函数

if (!IsPostBack)
{
    LoadDatabaseContent();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();

    byte[] buf = new byte[8192];

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://localhost:44333/Backend2.aspx?update=true&id=" + DropDownList1.SelectedItem.Text);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    Stream resStream = response.GetResponseStream();
    int count;  
    do
    {
        count = resStream.Read(buf, 0, buf.Length);
        if (count != 0)
        {
            string tempString = Encoding.ASCII.GetString(buf, 0, count);

            sb.Append(tempString);
        }
    }
    while (count > 0);
    Response.Write(sb.ToString());

    //createTextBox.Text = sb.ToString();

    resStream.Dispose();
    response.Dispose();
}
ASPX代码:

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>
</title>
</head>
<body>
<form id="form1" runat="server">
    <div>
        <asp:Button ID="buttonGeneratePdf" runat="server" OnClick="buttonGeneratePdf_Click" Text="Generate PDF" />
        <br />
        <asp:Button ID="buttonGenerateQrCode" runat="server" OnClick="buttonGenerateQrCode_Click" Text="Generate QR" />
        <br />
    </div>
    <div>
    <asp:DropDownList ID="DropDownList1" runat="server" Width="400px" Height="16px" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" 
OnTextChanged="DropDownList1_TextChanged">
    </asp:DropDownList>
    </div>
</form>
</body>
</html>
在与数据库通信的后端是否接受此请求:

    protected void Page_Load(object sender, EventArgs e)
    {
        string generateQrCode = Request.QueryString["generateqrcode"];
        if (generateQrCode != null && generateQrCode == "true") GenerateQrCode();
    }
哪个调用函数:

private void GenerateQrCode()
    {
        string id = Request.QueryString["id"];

        QRCodeGenerator qr = new QRCodeGenerator();
        QRCodeData data = qr.CreateQrCode(id, QRCodeGenerator.ECCLevel.Q);
        QRCode code = new QRCode(data);
        Bitmap QRbmp = code.GetGraphic(5);
        QRbmp.Save("pathtofile..\\QRcode.jpg");
    }

Javascript似乎无法执行,因为表单上不存在元素
\uuu EVENTTARGET
\uu EVENTARGUMENT
。在生成的HTML上,表单应包含以下隐藏元素:

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />


您应该尝试确认这些元素是否正在生成,如果没有,则尝试跟踪它们不存在的原因。您可能需要使用
标记而不是
,但这实际上只是我的猜测。

您能否查看源代码并确认为下拉列表的HTML元素生成了javascript?当您在dropdownlist中选择新值时,您是否在控制台中看到任何JS错误?您还提到“按下按钮”,但我在此表单中没有看到任何错误。不,我看不到任何javascript,或者至少我不知道,我怎么能看到它。这是我的第一个web应用程序,所以我对它很陌生。在大多数web浏览器中,当你查看页面时,你应该能够右键单击并选择“查看源代码”。在chrome中,你可以按F12打开开发工具窗口,这将为你提供一个Javascript控制台。它引发此异常:Uncaught TypeError:无法在以下位置设置未定义的属性“value”:1:1