Вопрос

On the left side, I have 3 labels that display the data according to the database. I want to whenever after I type in the data on the textbox and after clicking the submit button, the label will automatically refresh, and display the data. I do not want to click on the browser refresh button to refresh the labels. I only want to refresh the labels. Thanks

enter image description here

After clicking submit button(I do not want to refresh the page as if i refresh the page, the record created text will not be shown.) enter image description here

After clicking refresh button. enter image description here

error enter image description here

MY SOURCE CODE

<table class="style1">
    <tr>
        <td class="style3">
            <asp:Label ID="Label6" runat="server" Text="Event Announcement of the day" 
                ForeColor="Lime" style="text-decoration: underline" ></asp:Label>
            <br />
            <asp:Label ID="lblEvent1" runat="server" ForeColor="White"></asp:Label>
            <br />
            <asp:Label ID="lblEvent2" runat="server" ForeColor="White"></asp:Label>
            <br />
            <asp:Label ID="lblEvent3" runat="server" ForeColor="White"></asp:Label>
            <br />
            <br />
            <br />
            </td>
        <td class="style2">
            <asp:Label ID="lblEventType" runat="server" Text="Event Type" ForeColor="White"></asp:Label>
            <asp:TextBox ID="txtEventType" runat="server"></asp:TextBox>
            <br />
            <asp:Label ID="lblEventName" runat="server" Text="Event Name" ForeColor="White"></asp:Label>
            <asp:TextBox ID="txtEventName" runat="server"></asp:TextBox>
            <br />
            <asp:Label ID="lblStartDate" runat="server" Text="Start Date" ForeColor="White"></asp:Label>
            : <asp:TextBox runat="server" id="txtStartDate" />
            <br />
            <asp:Label ID="lblEndDate" runat="server" Text="End Date" ForeColor="White"></asp:Label>
            &nbsp;<asp:TextBox runat="server" id="txtEndDate" />
            &nbsp;<br />
            <br />
            <br />
            <asp:Button ID="txtSubmit" runat="server" onclick="txtSubmit_Click" 
                Text="Submit" />
        </td>
    </tr>

MY CODE BEHIND CODE

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string strConnString = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
        string str;
        SqlCommand com;

        SqlConnection con = new SqlConnection(strConnString);
        con.Open();
        str = "select * from EVENT_ANNOUNCE where getdate() >= STARTDATE and cast(getdate() as Date) <= ENDDATE";
        com = new SqlCommand(str, con);
        SqlDataReader reader = com.ExecuteReader();

        var events = new List<string>();

        if (reader.HasRows)
        {
            while (reader.Read())
                events.Add(reader["EVENTNAME"].ToString());
        }

        if (events.Count >= 1)
            lblEvent1.Text = events[0];
        if (events.Count >= 2)
            lblEvent2.Text = events[1];
        if (events.Count >= 3)
            lblEvent3.Text = events[2];

        reader.Close();
        con.Close();
    }
}

private void insertEventRecord(string eventtype, string eventname, DateTime startdate, DateTime enddate)
{
    try
    {
        string strConnectionString = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
        SqlConnection myConnect = new SqlConnection(strConnectionString);
        string strCommandText = "INSERT EVENT_ANNOUNCE(EVENTTYPE, EVENTNAME, STARTDATE, ENDDATE) Values(@EVENTTYPE, @EVENTNAME, @STARTDATE, @ENDDATE)";

        SqlCommand cmd = new SqlCommand(strCommandText, myConnect);

        cmd.Parameters.AddWithValue("@EVENTTYPE", eventtype);
        cmd.Parameters.AddWithValue("@EVENTNAME", eventname);
        cmd.Parameters.AddWithValue("@STARTDATE", startdate);
        cmd.Parameters.AddWithValue("@ENDDATE", enddate);

        myConnect.Open();

        int result = cmd.ExecuteNonQuery();

        if (result > 0)
        {
            lblSuccess.Visible = true;
            lblSuccess.Text = "Record Created";
            lblError.Visible = false;
            bindEventGridView();
        }
        else
        {
            lblError.Visible = true;
            lblError.Text = "Create Fail";
            lblSuccess.Visible = false;

        }
        myConnect.Close();
    }
    catch (Exception)
    {
        lblError.Visible = true;
        lblError.Text = "Please enter correct data";
        lblSuccess.Visible = false;
    }
}

protected void txtSubmit_Click(object sender, System.EventArgs e)
{
    string eventtype = Convert.ToString(txtEventType.Text);
    string eventname = Convert.ToString(txtEventName.Text);
    string startdate = Convert.ToString(txtStartDate.Text);
    string enddate = Convert.ToString(txtEndDate.Text);
    DateTime datStartDate;
    DateTime datEndDate;
    if (DateTime.TryParseExact(startdate, new string[] { "dd/MM/yyyy" },
                           System.Globalization.CultureInfo.InvariantCulture,
                           System.Globalization.DateTimeStyles.None, out datStartDate)
        && (DateTime.TryParseExact(enddate, new string[] { "dd/MM/yyyy" },
                           System.Globalization.CultureInfo.InvariantCulture,
                           System.Globalization.DateTimeStyles.None, out datEndDate)))
    {

        insertEventRecord(eventtype, eventname, datStartDate, datEndDate);
        System.Threading.Thread.Sleep(5000);
    }
    else
    {
        lblError.Visible = true;
        lblError.Text = "Invalid Date";
        lblSuccess.Visible = false;
    }
}
Это было полезно?

Решение

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        UpdateLabels();// code moved to a method
    }
}

protected void txtSubmit_Click(object sender, System.EventArgs e)
{

  // at the end of your code 
  txtEventType.Text = string.Empty;
  txtEventName.Text = string.Empty;
  // set all the text boxes empty like above
  // update the label values 
  UpdateLabels();
}

public void UpdateLabels()
{

    string strConnString = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
    string str;
    SqlCommand com;

    SqlConnection con = new SqlConnection(strConnString);
    con.Open();
    str = "select * from EVENT_ANNOUNCE where getdate() >= STARTDATE and cast(getdate() as Date) <= ENDDATE";
    com = new SqlCommand(str, con);
    SqlDataReader reader = com.ExecuteReader();

    var events = new List<string>();

    if (reader.HasRows)
    {
        while (reader.Read())
            events.Add(reader["EVENTNAME"].ToString());
    }

    if (events.Count >= 1)
        lblEvent1.Text = events[0];
    if (events.Count >= 2)
        lblEvent2.Text = events[1];
    if (events.Count >= 3)
        lblEvent3.Text = events[2];

    reader.Close();
    con.Close();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top