【问题标题】:Databind a stored procedure to a asp.net label将存储过程数据绑定到 asp.net 标签
【发布时间】:2018-05-30 09:12:30
【问题描述】:

所以我有一个存储过程,我想添加到标签中。请问我该怎么做,我什至需要敲什么...即

 protected void label_DataBinding(object sender, EventArgs e)
        {

        }

我的数据是从班级中提取出来的..

数据类

 public DataSet TotalPacked(int itemSeriesMasterId, DateTime shiftstart, DateTime shiftend)
        {
            object[] args = new object[3] {itemSeriesMasterId, shiftstart, shiftend};
            return CallSp(MethodBase.GetCurrentMethod(), args) as DataSet;
        }
    }
}

商务类

 public DataTable GetTotalPacked(DateTime shiftStart, DateTime shiftEnd, int seriesMasterId)
        {
            using (DataManager dmgr = new DataManager())
            {
                dmgr.Connect(ConfigurationManager.AppSettings["ProductionKey"]);
                DataSet dset = dmgr.TotalPacked(seriesMasterId,shiftStart,shiftEnd);
                return CreatePackingStats(dset);

那么我如何从标签中调用存储过程呢?任何帮助将不胜感激。

【问题讨论】:

  • 为什么需要从label 调用Stored procedure
  • 因为我需要每 30 秒显示一次从数据库调用的更新数据...
  • 如果您只想将数据显示到label,则不需要从label 调用。带有setInterval()ajax 请求是一种更好的方法。
  • 我的经理告诉我这样做,我是一名实习生,你看哈哈。我不知道我在做什么哈哈
  • 你可以看看这个Link,它可能对你想要做的事情有所帮助。

标签: c# asp.net


【解决方案1】:

因此,为了让 label 每隔几秒钟刷新一次数据,您可以尝试通过创建 WebMethod 来获取数据,然后通过 javascript 中的 setInterval() 调用特定的 WebMethod

有关WebMethodsWebMethods via Web Service的更多信息& Paramterized WebMethods

代码示例:

因此,例如,我有一个名为 GetTime() 的方法,我必须从中获取 DateTime 并将其显示到我的 .aspx 页面中的 label 上,间隔为每 5 秒。为此,我必须从 JavaScript(客户端)调用 WebMethods。因此,首先,我们在您的调用页面 (.aspx) 或母版页(如果您在其他页面中需要它)上添加一个 ScriptManager(您可以从工具栏拖动或简单地编写),并选择EnablePageMethods="true".

脚本管理器

<asp:ScriptManager ID="scriptManager1" EnablePageMethods="true" runat="server"></asp:ScriptManager>

服务器端

    [System.Web.Services.WebMethod]
    public static string GetTime()
    {
        return System.DateTime.Now.ToString();
    }

为了在客户端绑定它,我有标签并设置了标签ClientIdMode="Static"的属性,所以我们可以很容易地在javascript中获得控制:

<asp:Label runat="server" ID="lbltime" ClientIDMode="Static">time will be displayed here</asp:Label>

这里是调用Webmethod的javascript函数:

function getTime()
{
  PageMethods.GetTime(ongetTimePass, ongetTimefail);            
}

PageMethods 采用方法名以及参数以及 onSuccess() 和 onFailure 函数,语法如下: PageMethods.&lt;WebMethodName&gt;(Paramter1,Paramter2....,OnSucess(),OnFailure()).

如果您碰巧将 JQuery 库附加到您的项目中,您可以通过 ajax 调用该函数:

function getTime()
    {
        $.ajax({
            type: "POST",
            url: "default.aspx/GetTime",
            data: '',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: ongetTimePass,
            failure: ongetTimefail
        });

    }

这里是ongetTimePass()ongetTimefail() 函数:

 function ongetTimePass(result)
 {
     //here we pass the result if the method has a success response.            
     document.getElementById('lbltime').innerHTML = result;
 }

 function ongetTimefail(error)
 {
     alert(error);
 }

现在要调用它,我们使用 [setInterval()] 函数(https://www.w3schools.com/jsref/met_win_setinterval.asp) 将它添加到页面的load() 事件中:

window.onload = function () {
        var st = setInterval(getTime, 1000);
    };

【讨论】:

    猜你喜欢
    • 2010-11-11
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多