【问题标题】:all data disappears after PostBackPostBack 后所有数据都消失
【发布时间】:2023-04-09 01:17:01
【问题描述】:

所以我会在一个文本框上写下多少下拉列表、文本框、标签等以及页面 ia AutoPostBack。但是在我在 gridview 上选择一个项目后,页面 ia 自动回发并且所有数据都消失了。我希望 gridview 成为 AutoPostBack 但我怎样才能让它不消失我从第一个文本框中添加的所有其他项目?

更多信息请看源代码:

默认.aspx

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
            width: 248px;
        }
        .auto-style2 {
            width: 253px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div>
        <table style="width:100%;">
            <tr>
                <td class="auto-style2">
                    &nbsp;</td>
                <td>
                    &nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td class="auto-style2">
        <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
                </td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td class="auto-style2">
        <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
                </td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td class="auto-style2">
        <asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
                </td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td class="auto-style2">
        <asp:PlaceHolder ID="PlaceHolder3" runat="server"></asp:PlaceHolder>
                </td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td class="auto-style2">
        <asp:PlaceHolder ID="PlaceHolder4" runat="server"></asp:PlaceHolder>
                </td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td class="auto-style2">
        <asp:PlaceHolder ID="PlaceHolder5" runat="server"></asp:PlaceHolder>
                </td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td class="auto-style2">
                    &nbsp;</td>
                <td>&nbsp;</td>
            </tr>
        </table>
        <br />
    </div>
    </form>
</body>
</html>

和 Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

public partial class Default2 : System.Web.UI.Page
{
    DropDownList artikulli;
    TextBox cmimi;
    Label tregoCmimi;
    TextBox sasia;
    Label cmimiGjithsej;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {

        }
    }

    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(TextBox1.Text))
        {
            int a = int.Parse(TextBox1.Text);
            for (int j = 1; j <= a; j++)
            {
                Guid IDUnik = new Guid();

                artikulli = new DropDownList();
                cmimi = new TextBox();
                tregoCmimi = new Label();
                sasia = new TextBox();
                cmimiGjithsej = new Label();

                artikulli.ID = j.ToString(IDUnik.ToString("N").Substring(31));
                artikulli.AutoPostBack = true;
                cmimi.ID = j.ToString(IDUnik.ToString("D").Substring(30));
                tregoCmimi.ID = j.ToString(IDUnik.ToString("P"));
                sasia.ID = j.ToString(j.ToString(IDUnik.ToString("X")));
                cmimiGjithsej.ID = j.ToString(j.ToString(IDUnik.ToString("B"))); ;

                PlaceHolder1.Controls.Add(artikulli);
                PlaceHolder2.Controls.Add(cmimi);
                PlaceHolder3.Controls.Add(tregoCmimi);
                PlaceHolder4.Controls.Add(sasia);
                PlaceHolder5.Controls.Add(cmimiGjithsej);

                artikulli.Items.Insert(0, new ListItem("<Select Subject>", "0"));
                artikulli.Items.Insert(1, new ListItem("<Select Subject>", "1"));
            }
        }
    }
}

【问题讨论】:

标签: c# asp.net gridview postback


【解决方案1】:

你可以这样做

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        AddItems();
    }
}

private void AddItems()
{
    if (!string.IsNullOrEmpty(TextBox1.Text))
    {
        int a = int.Parse(TextBox1.Text);
        for (int j = 1; j <= a; j++)
        {
            Guid IDUnik = new Guid();

            artikulli = new DropDownList();
            cmimi = new TextBox();
            tregoCmimi = new Label();
            sasia = new TextBox();
            cmimiGjithsej = new Label();

            artikulli.ID = j.ToString(IDUnik.ToString("N").Substring(31));
            artikulli.AutoPostBack = true;
            cmimi.ID = j.ToString(IDUnik.ToString("D").Substring(30));
            tregoCmimi.ID = j.ToString(IDUnik.ToString("P"));
            sasia.ID = j.ToString(j.ToString(IDUnik.ToString("X")));
            cmimiGjithsej.ID = j.ToString(j.ToString(IDUnik.ToString("B"))); ;

            PlaceHolder1.Controls.Add(artikulli);
            PlaceHolder2.Controls.Add(cmimi);
            PlaceHolder3.Controls.Add(tregoCmimi);
            PlaceHolder4.Controls.Add(sasia);
            PlaceHolder5.Controls.Add(cmimiGjithsej);

            artikulli.Items.Insert(0, new ListItem("<Select Subject>", "0"));
            artikulli.Items.Insert(1, new ListItem("<Select Subject>", "1"));
        }
    }
}

您的文本框中不需要OnTextChanged="TextBox1_TextChanged"

【讨论】:

    【解决方案2】:
       protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                Populate();
            }
        }
    
        protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
    
            Populate();
        }
    
        void Populate()
        {
            PlaceHolder1.Controls.Clear();
            PlaceHolder2.Controls.Clear();
            PlaceHolder3.Controls.Clear();
            PlaceHolder4.Controls.Clear();
            PlaceHolder5.Controls.Clear();
            if (!string.IsNullOrEmpty(TextBox1.Text))
            {
                int a = int.Parse(TextBox1.Text);
                for (int j = 1; j <= a; j++)
                {
                    Guid IDUnik = new Guid();
    
                    artikulli = new DropDownList();
                    cmimi = new TextBox();
                    tregoCmimi = new Label();
                    sasia = new TextBox();
                    cmimiGjithsej = new Label();
    
                    artikulli.ID = j.ToString(IDUnik.ToString("N").Substring(31));
                    artikulli.AutoPostBack = true;
                    cmimi.ID = j.ToString(IDUnik.ToString("D").Substring(30));
                    tregoCmimi.ID = j.ToString(IDUnik.ToString("P"));
                    sasia.ID = j.ToString(j.ToString(IDUnik.ToString("X")));
                    cmimiGjithsej.ID = j.ToString(j.ToString(IDUnik.ToString("B"))); ;
    
                    PlaceHolder1.Controls.Add(artikulli);
                    PlaceHolder2.Controls.Add(cmimi);
                    PlaceHolder3.Controls.Add(tregoCmimi);
                    PlaceHolder4.Controls.Add(sasia);
                    PlaceHolder5.Controls.Add(cmimiGjithsej);
    
                    artikulli.Items.Insert(0, new ListItem("<Select Subject>", "0"));
                    artikulli.Items.Insert(1, new ListItem("<Select Subject>", "1"));
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 2014-04-29
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      相关资源
      最近更新 更多