一段时间后如何更新gridview时通知用户 [英] How to notify a user after some time that gridview is updated

查看:87
本文介绍了一段时间后如何更新gridview时通知用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好编码我有一个申请,我有不同的页面



在我的第一页:我有表格。当我输入详细信息并单击数据库中的提交按钮数据存储。



在我的第二页上我有一个grdiview,我可以在这里查看我拥有的表单数据库的详细信息当我点击编辑链接时,它将重定向到表单页面,其中提交按钮变为更新按钮,用户可以更新详细信息。



现在我想要的是修改一小时后,应用程序的其他用户会在报告页面上收到正在进行更新的通知。我不想用户sqldependency



这是表单页码:

Hi coder i have an application in which i have different pages

On my first page: i have form. When i enter details and click on submit button data store in database.

On my second page i have a grdiview where i can view details from database of the form I have an edit link on that when i click on edit link it will redirect to form page where submit button become updated button and user can update details.

Now what i want is after one hour of modification other user of the application get a notification on report page that updation is being done. I dont want to user sqldependency

This is form page code:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        lblFirstName.Text = Session["FirstName"].ToString();
        if (Session["portal"] != null)
        {
            ddlPortal.SelectedIndex = ddlPortal.Items.IndexOf(ddlPortal.Items.FindByValue(Convert.ToString(Session["portal"])));
        }
        if (!string.IsNullOrEmpty(Request.QueryString["buttonValue"]))
        {
            string btnValue = Request.QueryString["buttonValue"];
            if (btnValue == "Update")
            {
                btnSubmit.Text = "Update";
            }
            else if (btnValue == "Submit")
            {
                btnSubmit.Text = "Submit";
            }
            else
            {
                Response.Write("error");
            }
        }
        else
        {
            this.btnSubmit.Text = "Submit";
        }
        string ID = Request.QueryString["ID"];
        cmd = new SqlCommand("Select * from Form where ID='" + ID + "'", con);
        con.Open();
        da = new SqlDataAdapter(cmd);
        dt.Clear();
        da.Fill(dt);
        if (dt.Rows.Count > 0)
        {
            ddlPortal.SelectedValue = dt.Rows[0][2].ToString();
            tbTid.Text = dt.Rows[0][3].ToString();
            tbPNR.Text = dt.Rows[0][4].ToString();
            tbTicketNumber.Text = dt.Rows[0][5].ToString();
            tbESACCode.Text = dt.Rows[0][6].ToString();
            tbWaiverCode.Text = dt.Rows[0][7].ToString();
            tbRemarks.Text = dt.Rows[0][8].ToString();
            tbUnusedTicketAmount.Text = dt.Rows[0][9].ToString();
            ddlUnusedAmount.SelectedValue = dt.Rows[0][10].ToString();
            tbAirlinePenality.Text = dt.Rows[0][11].ToString();
            ddlAirlinePenality.SelectedValue = dt.Rows[0][12].ToString();
            tbNetRefundProcess.Text = dt.Rows[0][13].ToString();
            ddlNetRefundProcess.SelectedValue = dt.Rows[0][14].ToString();
            tbRefundableCommision.Text = dt.Rows[0][15].ToString();
            ddlRefundableCommission.SelectedValue = dt.Rows[0][16].ToString();
            tbCouponRefund.Text = dt.Rows[0][17].ToString();
            ddlRefundType.SelectedValue = dt.Rows[0][18].ToString();

        }
        con.Close();
    }
    if (ddlPortal.SelectedValue == "Select")
    {
        FirstForm.Visible = false;
    }
}
private void Submit()
{
    //store date and time on click event of button
    //DateTime clicktime = DateTime.Now;
    string d = DateTime.Now.ToString();
    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["BartConnectionString"].ToString()))
    {
        con.Open();
        string Name = lblFirstName.Text;
        string Portal = ddlPortal.SelectedValue;
        string TID = tbTid.Text;
        string PNR = tbPNR.Text;
        string TicketNumber = tbTicketNumber.Text;
        string ESACCode = tbESACCode.Text;
        string WaiverCode = tbWaiverCode.Text;
        string Remarks = tbRemarks.Text;
        string UnusedTicketAmount = tbUnusedTicketAmount.Text;
        string UnusedAmount = ddlUnusedAmount.SelectedValue;
        string AirlinePenality = tbAirlinePenality.Text;
        string Airline = ddlAirlinePenality.SelectedValue;
        string NetRefundProcess = tbNetRefundProcess.Text;
        string NetRefund = ddlNetRefundProcess.SelectedValue;
        string RefundableCommission = tbRefundableCommision.Text;
        string Refundable = ddlRefundableCommission.SelectedValue;
        string CouponRefunded = tbCouponRefund.Text;
        string RefundType = ddlRefundType.SelectedValue;

        using (SqlCommand cmd = con.CreateCommand())
        {
            cmd.CommandText = "insert into Form(Name,Portal,TID,PNR,TicketNumber,ESACCode,WaiverCode,Remarks,UnusedTicketAmount,ddlUnusedAmount, AirlinePenality, ddlAirlinePenality, NetRefundProcess, ddlNetRefundProcess, RefundableCommission, ddlRefundableCommission, CouponRefunded,RefundType,DateTime) values('" + Name + "','" + Portal + "','" + TID + "','" + PNR + "','" + TicketNumber + "', '" + ESACCode + "', '" + WaiverCode + "', '" + Remarks + "','" + UnusedTicketAmount + "','" + UnusedAmount + "','" + AirlinePenality + "','" + Airline + "','" + NetRefundProcess + "','" + NetRefund + "','" + RefundableCommission + "','" + Refundable + "','" + CouponRefunded + "','" + RefundType + "','" + d + "')";
            cmd.Parameters.AddWithValue("@Name", lblFirstName.Text.Trim());
            cmd.Parameters.AddWithValue("@Portal", ddlPortal.SelectedIndex);
            cmd.Parameters.AddWithValue("@TID", tbTid.Text.Trim());
            cmd.Parameters.AddWithValue("@PNR", tbPNR.Text.Trim());
            cmd.Parameters.AddWithValue("@TicketNumber", tbTicketNumber.Text.Trim());
            cmd.Parameters.AddWithValue("@ESACCode", tbESACCode.Text.Trim());
            cmd.Parameters.AddWithValue("@WaiverCode", tbWaiverCode.Text.Trim());
            cmd.Parameters.AddWithValue("@Remarks", tbRemarks.Text.Trim());
            cmd.Parameters.AddWithValue("@UnusedTicketAmount", tbUnusedTicketAmount.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlUnusedAmount", ddlUnusedAmount.SelectedIndex);
            cmd.Parameters.AddWithValue("@AirlinePenality", tbAirlinePenality.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlAirlinePenality", ddlAirlinePenality.SelectedIndex);
            cmd.Parameters.AddWithValue("@NetRefundProcess", tbNetRefundProcess.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlNetRefundProcess", ddlNetRefundProcess.SelectedIndex);
            cmd.Parameters.AddWithValue("@RefundableCommission", tbRefundableCommision.Text.Trim());
            cmd.Parameters.AddWithValue("@ddlRefundableCommission", ddlRefundableCommission.SelectedIndex);
            cmd.Parameters.AddWithValue("@CouponRefunded", tbCouponRefund.Text.Trim());
            cmd.Parameters.AddWithValue("@RefundType", ddlRefundType.SelectedIndex);
            cmd.ExecuteNonQuery();
        }
        con.Close();
        tbTid.Text = "";
        tbPNR.Text = "";
        tbTicketNumber.Text = "";
        tbESACCode.Text = "";
        tbWaiverCode.Text = "";
        tbRemarks.Text = "";
        tbRemarks.Text = "";
        tbUnusedTicketAmount.Text = "";
        tbAirlinePenality.Text = "";
        tbNetRefundProcess.Text = "";
        tbRefundableCommision.Text = "";
        tbCouponRefund.Text = "";
        lblRefundType.Text = "";
        tbTid.Focus();
    }
}
private void Update()
{
    con.Open();
    string id = Request.QueryString["ID"].ToString();
    string d = DateTime.Now.ToString();
    string query = "update Form set Portal='" + ddlPortal.SelectedValue + "',Tid='" + tbTid.Text + "',PNR='" + tbPNR.Text + "',TicketNumber='" + tbTicketNumber.Text + "',ESACCode='" + tbESACCode.Text + "',WaiverCode='" + tbWaiverCode.Text + "',Remarks='" + tbRemarks.Text + "',UnusedTicketAmount='" + tbUnusedTicketAmount.Text + "',ddlUnusedAmount='" + ddlUnusedAmount.SelectedValue + "',AirlinePenality='" + tbAirlinePenality.Text + "',ddlAirlinePenality='" + ddlAirlinePenality.SelectedValue + "',NetRefundProcess='" + tbNetRefundProcess.Text + "',ddlNetRefundProcess='" + ddlNetRefundProcess.SelectedValue + "',RefundableCommission='" + tbRefundableCommision.Text + "',ddlRefundableCommission='" + ddlRefundableCommission.SelectedValue + "',CouponRefunded='" + tbCouponRefund.Text + "',RefundType='" + ddlRefundType.SelectedValue + "',DateTime='" + d + "' where ID='" + id + "'";
    cmd = new SqlCommand(query, con);
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();
    con.Close();
    Response.Redirect("~/Admin/PortalReport.aspx", false);
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (btnSubmit.Text == "Submit")
    {
        this.Submit();
    }
    else if (btnSubmit.Text == "Update")
    {
        this.Update();
    }
}



如何通知此应用程序的其他用户一小时后更新某些数据我只想显示一条消息一个标签可能是某些数据被更新到除了进行修改的用户之外的其他用户



提前感谢!!


How can i notify other user of this application that some data is updated after one hour i just want to show an message on a label may be that some data is updated to other user apart from the user that make modification

Thanks in advance !!

推荐答案

如果你真的不想使用SQL那么我会看看AppFabric。



这是一个数据缓存/状态管理工具包适用于您服务器场中的所有服务器。



这将允许您将值存储在内存中,所有服务器上的所有会话都可以访问这些值。



你可以用这个来写一个标志,然后定期检查那个标志,看看小时是否结束。



有一些SQL组件可以作为AppFabric的一部分实现,用于长期数据持久性。我不认为他们是一个要求,他们是可选的额外内容。
If you really don't want to use SQL then I would look at AppFabric.

This is a data caching / state management toolkit that works across all servers in your farm.

This will allow you to store values in memory which can be accessed by all sessions on all servers.

You could use this to write away a flag and then check that flag periodically to see if the hour is up.

Whilst there are SQL components which can be implemented as part of AppFabric for long term data persistence. I don't think they're a requirement, they're optional extras.


这篇关于一段时间后如何更新gridview时通知用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆