单击按钮后需要清除放置在更新面板中的文本框的值

时间:2016-12-14 05:41:46

标签: c# asp.net

我在更新面板中有很少的文本框。在按钮上单击文本框的值将插入到数据库中。我希望在数据插入数据库后清除值。

PS:我在插入数据后调用它后尝试使用函数清除值。它没有用。

ASP

<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeBehind="CalenderTest.aspx.cs" Inherits="DynamicCalender.CalenderTest"  %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

 <!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
  <title></title>

<style type="text/css">
    .auto-style1 {
        width: 363px;
    }
</style>
</head>
<body>

<form id="form1" runat="server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1"runat="server"></asp:ToolkitScriptManager>

<div>
   <div>

       <asp:Label ID="lbl_year" runat="server" Text="Year"></asp:Label>&nbsp;&nbsp;
       <asp:DropDownList ID="ddl_year" runat="server"></asp:DropDownList>&nbsp;&nbsp;

       <asp:Label ID="lbl_train" runat="server" Text="Training"></asp:Label>&nbsp;&nbsp;
       <asp:DropDownList ID="dd1_training" runat="server"></asp:DropDownList>&nbsp;&nbsp;

        <asp:Button ID="btnsave" runat="server" Text="Create Batches" OnClick="btnsave_Click"/>
       <br />
       <br />

       <asp:UpdatePanel ID="pnl1" runat="server" UpdateMode="Conditional"> 
           <ContentTemplate>

               <asp:Label ID="ss" runat="server" Text="session"></asp:Label> 

                    <asp:Label runat="server" Text="Venue"></asp:Label>

                   <asp:TextBox ID="venue" runat="server" CausesValidation="false"></asp:TextBox>

                   <asp:Label ID="Label1" runat="server" Text="Time"></asp:Label>

                   <asp:DropDownList ID="ddltime" runat="server" ></asp:DropDownList>

                   <asp:Label ID="Label2" runat="server" Text="Faculty"></asp:Label>

                    <asp:TextBox ID="faculty" runat="server"  CausesValidation="false"></asp:TextBox>

                   <asp:Label ID="Label3" runat="server" Text="Module Details"></asp:Label>

                   <asp:TextBox TextMode="MultiLine" id="module_det" runat="server"  CausesValidation="false"></asp:TextBox>

              <asp:Button id="Button1"  runat="server" Text="Add" OnClick="Button1_Click" />
              <asp:Button id="Button2"  runat="server" Text="Next" OnClick="Button2_Click"/>

                   <asp:TextBox ID="caldt" runat="server"  CausesValidation="false"></asp:TextBox>

                   <asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="caldt"></asp:CalendarExtender>

               </ContentTemplate>
           <Triggers>
               <asp:AsyncPostBackTrigger ControlID="Button1" />

           </Triggers>
            </asp:UpdatePanel>


       <asp:HiddenField ID="hd01" runat="server" />
       <asp:HiddenField ID="hd02" runat="server" />
    </div>
</div>

C#

protected void Button1_Click(object sender, EventArgs e)
{
    sess_datetime = caldt.Text + " " + ddltime.SelectedItem.Value.ToString();
    str1 = "Insert into sessDetail (tid,bid,sid,dt,faculty,venue,status) values(@tid,@bid,@sid,@dt,@faculty,@venue,@status)";

    cmd = new SqlCommand(str1, con);
    cmd.Parameters.Clear();
    cmd.Parameters.AddWithValue("@tid", dd1_training.SelectedItem.Value);
    cmd.Parameters.AddWithValue("@bid",Session["bid"]);
    cmd.Parameters.AddWithValue("@sid",Session["sid"]);
    cmd.Parameters.AddWithValue("@dt", sess_datetime);
    cmd.Parameters.AddWithValue("@faculty", faculty.Text);
    cmd.Parameters.AddWithValue("@venue", venue.Text);
    cmd.Parameters.AddWithValue("@status", "0");
    cmd.ExecuteNonQuery();            
    con.Close();
    clear();        
}            

protected void clear
{
    try
    {
        foreach (var pnl in pnl1.Controls)
        {
            var tb = pnl as TextBox;
            if (tb != null)
            {
                tb.Text = "";
            }
        }
        ddltime.ClearSelection();
    }
    catch(Exception x)
    {
        Response.Write(x.Message);
    }
} 

1 个答案:

答案 0 :(得分:0)

使用UpdatePanel将控件包裹在PlaceHolder内,并将其用于foreach循环。

<asp:UpdatePanel ID="pnl1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:PlaceHolder ID="PlaceHolder1" runat="server">

            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

        </asp:PlaceHolder>
    </ContentTemplate>
</asp:UpdatePanel>

背后的代码

foreach (var pnl in PlaceHolder1.Controls)
{
    //clear controls
}