GridView 存储记录,但在每次重新加载网页时显示上次输入的记录



在我的应用程序中,我首先需要一个按钮,单击按钮用户应该会看到一个带有标签和文本框的弹出窗口,单击添加按钮时,数据应该添加到网格视图中,每件事都已完成,但是如果我第一次输入一个人的详细信息并单击添加按钮,那么它们将被添加到网格视图中。同样,如果我输入另一个人的详细信息,那么详细信息将像这样添加到网格视图中,我可以将详细信息添加到网格视图中,但是如果我在重新加载后在浏览器中重新加载页面,最后输入的记录正在添加,但它不应该被添加,只是页面应该重新加载,当我运行应用程序时,网格应该再次消失,这些记录应该如何显示这样做

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .Background
        {
            background-color: Black;
            filter: alpha(opacity=90);
            opacity: 0.8;
        }
        .Popup
        {
            background-color: #FFFFFF;
            border-width: 3px;
            border-style: solid;
            border-color: black;
            padding-top: 10px;
            padding-left: 10px;
            width: 400px;
            height: 350px;
        }
        .lbl
        {
            font-size:16px;
            font-style:italic;
            font-weight:bold;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Button ID="Button1" runat="server" Text="Fill Form in Popup" />
            <div style="margin-left:10px;margin-top:10px">  
     <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server" CellPadding="2"  
        ForeColor="#333333" GridLines="None">  
        <AlternatingRowStyle BackColor="White" />  
        <Columns>  
            <asp:BoundField HeaderStyle-Width="120px" HeaderText="FirstName" DataField="FirstName" />  
            <asp:BoundField HeaderStyle-Width="120px" HeaderText=" MiddleName" DataField="MiddleName" />  
            <asp:BoundField HeaderStyle-Width="120px" HeaderText=" LastName" DataField="LastName" />  
            <asp:BoundField HeaderStyle-Width="120px" HeaderText="Gender" DataField="Gender" />  
        </Columns>  
        <EditRowStyle BackColor="#2461BF" />  
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />  
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />  
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />  
        <RowStyle BackColor="#EFF3FB" />  
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />  
        <SortedAscendingCellStyle BackColor="#F5F7FB" />  
        <SortedAscendingHeaderStyle BackColor="#6D95E1" />  
        <SortedDescendingCellStyle BackColor="#E9EBEF" />  
        <SortedDescendingHeaderStyle BackColor="#4870BE" />  
    </asp:GridView>  
    </div>  
<!-- ModalPopupExtender -->
<cc1:ModalPopupExtender ID="mp1" runat="server" PopupControlID="Panl1" TargetControlID="Button1"
    CancelControlID="Button2" BackgroundCssClass="Background">
</cc1:ModalPopupExtender>
<asp:Panel ID="Panl1" runat="server" CssClass="Popup" align="center" style = "display:none">
    <div id="irm1" style=" width: 300px; height: 250px;" runat="server" >
    <table>
    <tr>
    <td>
    <asp:Label ID="Label1" runat="server" CssClass="lbl" Text="First Name"></asp:Label>
    </td>
    <td>
    <asp:TextBox ID="TextBox1" runat="server" Font-Size="14px" ></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td>
    <asp:Label ID="Label2" runat="server" CssClass="lbl" Text="Middle Name"></asp:Label>
    </td>
    <td>
    <asp:TextBox ID="TextBox2" runat="server" Font-Size="14px" ></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td>
    <asp:Label ID="Label3" runat="server" CssClass="lbl" Text="Last Name"></asp:Label>
    </td>
    <td>
    <asp:TextBox ID="TextBox3" runat="server" Font-Size="14px" ></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td>
    <asp:Label ID="Label4" runat="server" CssClass="lbl" Text="Gender"></asp:Label>
    </td>
    <td>
    <asp:TextBox ID="TextBox4" runat="server" Font-Size="14px" ></asp:TextBox>
    </td>
    <td>
    <asp:Button ID="Button3" runat="server" Text="Add" OnClick="Button3_Click" />
    </td>
        </tr>
    </table>
        </div>
    <br />
    <asp:Button ID="Button2" runat="server" Text="Close" />
</asp:Panel>
<!-- ModalPopupExtender -->
    </form>
</body>

在我的代码后面-

 protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        if (Session["Data"] == null) 
        {
            DataTable dt = new DataTable(); 
            dt.Columns.Add("FirstName");
            dt.Columns.Add("LastName");
            dt.Columns.Add("Qualification");
            dt.Columns.Add("Salary");
            DataRow dr = dt.NewRow(); 
            dr[0] = TextBox1.Text;
            dr[1] = TextBox2.Text;
            dr[2] = TextBox3.Text;
            dr[3] = TextBox4.Text;
            dt.Rows.Add(dr);
            GridView1.DataSource = dt; 
            GridView1.DataBind();
            Session["Data"] = dt;            
        }
        else
        {
            DataTable dt = new DataTable();
            dt = (DataTable)Session["Data"]; 
            DataRow dr = dt.NewRow(); 
            dr[0] = TextBox1.Text;
            dr[1] = TextBox2.Text;
            dr[2] = TextBox3.Text;
            dr[3] = TextBox4.Text;
            dt.Rows.Add(dr);
            GridView1.DataSource = dt; 
            GridView1.DataBind();
            Session.Remove("Data");
            Session["Data"] = dt;
        }
        ClearFields();
    }
    protected void ClearFields()
    {
        TextBox1.Text = "";
        TextBox2.Text = "";
        TextBox3.Text = "";
        TextBox4.Text = "";
    }
}

单击模式弹出窗口的"添加"按钮时,将调用以下方法。以下方法仅调用存储过程,将存储过程名称替换为存储过程名称。

protected void btn1_Click(object sender, EventArgs e)
{
    using (SqlCommand cmd = new SqlCommand())
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "AddUpdateCustomer";
        cmd.Parameters.AddWithValue("@FirstName", TextBox1.Text);
        cmd.Parameters.AddWithValue("@LastName", TextBox2.Text);
        cmd.Parameters.AddWithValue("@MiddleName", TextBox3.Text);
        cmd.Parameters.AddWithValue("@Gender", TextBox4.Text);
        cmd.ExecuteNonQuery();
    }
}

要关闭关闭按钮时的弹出窗口,您需要添加一些脚本,如下所示:

您的关闭Button 替换为:

<asp:Button ID="Button2" runat="server" Text="Close" OnClientClick = "return Hidepopup()"/>

把这个Script放在你的form

<script type = "text/javascript">    
    function Hidepopup() {
        $find("popup").hide();
        return false;
    }
</script>

更新:如果您希望将所有内容都放在一个form中,Form1应按如下格式格式化

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>    
<!DOCTYPE html>    
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
     <style type="text/css">    
        .Background {    
            background-color: Black;    
            filter: alpha(opacity=90);    
            opacity: 0.8;    
        }    
        .Popup {    
            background-color: #FFFFFF;    
            border-width: 3px;    
            border-style: solid;    
            border-color: black;    
            padding-top: 10px;    
            padding-left: 10px;    
            width: 400px;    
            height: 350px;    
        }    
        .lbl {    
            font-size:16px;    
            font-style:italic;    
            font-weight:bold;    
        }    
    </style>
</head>
<body>
 <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">    
</asp:ScriptManager>
        <asp:Button ID="Button1" runat="server" Text="Fill Form in Popup" />   
<cc1:ModalPopupExtender ID="mp1" runat="server" PopupControlID="Panl1" TargetControlID="Button1"    
    CancelControlID="Button2" BackgroundCssClass="Background">    
</cc1:ModalPopupExtender>
    <asp:Panel ID="Panl1" runat="server" CssClass="Popup" align="center" style = "display:none">    
    <div id="irm1" style=" width: 350px; height: 300px;" runat="server" >
        <table>        
            <tr>        
                <td>
                <asp:Label ID="Label1" runat="server" CssClass="lbl" Text="First Name"></asp:Label> </td>        
                <td>
                <asp:TextBox ID="TextBox1" runat="server" Font-Size="14px" ></asp:TextBox> </td>  </tr>
                <tr>        
                <td>        
                <asp:Label ID="Label2" runat="server" CssClass="lbl" Text="Middle Name"></asp:Label> </td>        
                <td>        
                <asp:TextBox ID="TextBox2" runat="server" Font-Size="14px" ></asp:TextBox> </td>  </tr>
                <tr>        
                <td>        
                <asp:Label ID="Label3" runat="server" CssClass="lbl" Text="Last Name"></asp:Label> </td>        
                <td>        
                <asp:TextBox ID="TextBox3" runat="server" Font-Size="14px" ></asp:TextBox> </td>        
                </tr>        
                <tr>        
                <td>        
                <asp:Label ID="Label4" runat="server" CssClass="lbl" Text="Gender"></asp:Label> </td>        
                <td>        
                <asp:TextBox ID="TextBox4" runat="server" Font-Size="14px" ></asp:TextBox> </td> </tr>    
                <tr>
                <td align="">
                <asp:Button ID="btn1" runat="server" Text="Add" OnClick="btn1_Click" /> </td> 
                <td> asp:Button ID="Button2" runat="server" Text="Close" />   </td> 
            </tr>
        </table>
    <br/>    
    </div>      
    </asp:Panel>     
 </form>
</body>

如果要在应用程序停止并重新启动后保留数据,则必须将数据存储在数据库/文件中。

在您的代码中,它似乎只是在DataTable中存储数据,因此当您停止/重新启动甚至当对象超出范围时,数据将刷新,因此如果要保留它,请使用数据库来存储它。

最新更新