【问题标题】:store details in gidview on button click单击按钮时在gridview中存储详细信息
【发布时间】:2016-07-08 11:39:02
【问题描述】:

在我的应用程序中,我首先需要一个按钮,单击该按钮用户应该会看到一个带有标签和文本框的弹出窗口,然后单击模态弹出窗口中的添加按钮,应将数据添加到网格视图中完成了,但是如果我第一次输入一个人的详细信息并单击添加按钮,那么它们将被添加到 gridview,如果我再次输入另一个人的详细信息,那么第一个人在 gridview 中的详细信息就会消失并且在 gridview 中显示第二个人的详细信息。但它应该显示两个记录。此外,如果我在一段时间后再次运行应用程序,则添加的记录不会显示在 gridview 中,这意味着 当我运行应用程序后有一段时间,如果我之前添加了记录,应该与按钮一起显示在 gridview 中,但只显示按钮而不显示 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)
        {
            dt = new DataTable();
            DataColumn dc1 = new DataColumn("FirstName");
            DataColumn dc2 = new DataColumn("MiddleName");
            DataColumn dc3 = new DataColumn("LastName");
            DataColumn dc4 = new DataColumn("Gender");
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            dt.Columns.Add(dc4);
            DataRow dr1 = dt.NewRow();
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        DataTable dt;

        protected void Button3_Click(object sender, EventArgs e)
        {
            DataRow dr1 = dt.NewRow();
            dr1[0] = TextBox1.Text;
            dr1[1] = TextBox2.Text;
            dr1[2] = TextBox3.Text;
            dr1[3] = TextBox4.Text;
            dt.Rows.Add(dr1);
            GridView1.DataSource = dt;
            GridView1.DataBind();
            ClearFields();

        }
        protected void ClearFields()
        {
            TextBox1.Text = "";
            TextBox2.Text = "";
            TextBox3.Text = "";
            TextBox4.Text = "";
        }

【问题讨论】:

  • 你得到什么错误?
  • 我想你想使用 ascx 而不是 aspx,也没有说明这个 webform1 或 webform2 后面的代码是什么?您不能在 iframe 后面的 webform1 代码中使用 webform2s 元素。尝试将这些代码复制到 webform2s 代码后面。

标签: javascript c# jquery asp.net


【解决方案1】:

在 Panl1 中携带你的 gridview 并将你所有的代码放在 webform1.cs 中,删除 webform2,你不需要它。

【讨论】:

  • 那是另一个问题,尝试用类似plugins.jquery.com/tag/modal的流行机制替换您的弹出机制@
  • 用 if(!IsPostback) 覆盖页面加载中的代码{//你的代码在这里}
猜你喜欢
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
相关资源
最近更新 更多