English 中文(简体)
电话:NET方法是同步的,一旦完成,就须电网。
原标题:Call .NET method asynchronously and bind to grid upon completion

集装箱:RetrieveItems(RetrieveItems)(一只需要的服务,但我要简明扼要地把它称作(在物品被回收后,这些物品被归入集装箱类别清单的财产)。 在完成这些物品的回收后,我谨更新一份电网电文,该电文位于更新的电线内(更新的Panel Mode=“有条件”和Rosmanager Enable PartialRendering=“true”。 更新小组没有触发项目。

我已经设定了突破点,并走到了每一步。 检索这些物品,电网有数据,然后打电话更新。 没有任何例外,但电网没有更新内容。 如果我用一个触发器和时间机确定更新小组。 在事故发生时,它的工作是完美的,但我只需要更新,然后才能收回这些物品,从而释放手册更新小组。 完成服务呼吁后,更新将是理想的。

我做了相当一部分搜索工作,但所有答案都是你要说的是Bind()数据。

我是否失踪了?

    private void UpdateGrid()
    {
        grid.DataSource = Container.List;
        grid.DataBind();
        updatePanel.Update();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        var task = Task.Factory.StartNew(Container.RetrieveItems);
        task.ContinueWith((x) => UpdateGrid());
    }

Update: I set up a simpler test to try to identify the issue. I created a label whose Text property would be updated upon completion of a method. When the page loaded, it called the method and when the method finished it called updatePanel.Update() but no change.

在Per Jaimes的建议中,我试图在Button_click的背后打电话更新手册,并确实更新了标签。 因此,我目前的设置没有发挥作用,尽管我仍在寻找最佳途径,更新完成一项同步的任务的内容。

最佳回答

贾梅正走上正轨。 服务器在提供网页后不能向客户提供新的数据。 客户必须提出申请。 我将为客户设定一个时间或使用“Java 字典”密码<>,定期对服务器进行测验,看其是否完成。

Web Service Approach

另一种办法是在服务器上设立一个网络服务,然后从你的网页上打电话。 这将在新的一线铺设,一旦取得结果,即按期更新电网。

首先,你需要设立一个妇女论坛网络服务处。 如果你肯定的话,就有许多文章。 此处为:http://www.codeproject.com/Articles/16973/Simple-Web-service-using-WCFWindows-Communication”rel=“nofollow”http://www.codeproject.com/Articles/16973/Simple-Web-service-using-WCF-Windows-Communication

我的项目之一的一些样本代码如下:

namespace UI.Web.WebServices
{
    [ServiceContract(Namespace = "WebServices")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class WebServiceName
    {
        [OperationContract]
        [WebInvoke(ResponseFormat = WebMessageFormat.Json)]
        public FacilityResult[] MethodName()
        {
            FacilityService facilityService = new 
            return facilityService .GetAssignments()).ToArray();
        }
    }
}

 

Calling the web service from the client

接下来,你们需要从你的网页上将电网数据整理成数据,使用 Java文:

Here is some sample code from the same project. This project uses jQuery and not pure JavaScript like the samples in the links:

<script type="text/javascript">
    function getGridData() {
        var payload = { }; // Put data to include here, if any

        $.ajax({
            type: "POST",
            url: "/WebServiceName.svc/MethodName",
            data: JSON.stringify(payload),
            contentType: "application/json",
            dataType: "json",
            success: function (msg) {
                bindResultsToGrid(msg.d);
            },
            error: function (xhr) { alert( error  + xhr.responseText); }
        });
    }

function bindResultsToGrid(data)
{
    ...
}
</script>

References http://aspalliance.com/1301_Unveil_the_Data_Binding_Architecture_inside_Microsoft_ASPNET_Ajax_10__Part_1

http://aspalliance.com/1301_Unveil_the_Data_Bled_Architecture_in_Microsoft_ASPNET_Ajax_10_Part_2

问题回答

我想谈谈我对这个问题的全面解决。 虽然小姐的回答是一个大的帮助,但我却无法走到这里。 我没有找到一个可行的解决办法来约束客户方的GredView,因此,我正在从javascript中建立电网。

1 - Setup Controller to handle request

可以通过日本宇宙航空研究开发机构从客户方打电话,允许你打电话。 用户方面的网络代码。 这是关键部分,因为所有的电力和重型运输都可以由控制人员/服务公司来进行,但你仍然有手法的灵活性。 我举了一个充分的例子,说明你可以在此做些什么:Call ASP.NET从贾瓦兹台运行?。 (Can be used with Webforms or MVC).

public class TimersController : ApiController
{
   public HttpResponseMessage<TimerDisplay[]> Get()
   {
       return new HttpResponseMessage<TimerDisplay[]>(
           TimerRepository.Get(), // all your .NET logic can be encapsulated here
           new MediaTypeHeaderValue("application/json")
        );
    }
}

2 - Initiate the request with AJAX

可以通过将(文件)复制活动、纽克或定期与时俱进的方式,在页数中做到这一点。

        $.ajax({
            url: "api/timers",
            dataType: "json",
            success: function (result) { bindGrid(result); }
        })

3 - Bind the data to a grid

正如我所说的那样,我没有找到一种办法将数据与客户方的GridView联系起来。 我认为,更好的解决办法是完全使用GredView(这更是一种服务方的控制,对这种情况不灵活),而且,你可以从Javascript那里生成电网。 虽然你能够通过数据进行人工操作,并且只是创建<条码>、>、t>和<td> yourself,但只有为数不多的网格/专用框架可供你使用。 具有可直接约束JSON数据的冰箱框架之一,是Kendo UI(。 (许多其他有用的植被)。 这一SO员额载有更多关于javascript UI框架的建议https://stackoverflow.com/questions/159025/jquery-grid- recommendations。 。

    function bindGrid(gridData) {
        var grid = $("#grid");
        grid.html("");
        grid.kendoGrid({
            columns: [
                { field: "Place", title: "Place" },
                { field: "Time", title: "Time" } 
            ],
            dataSource: {
                data: gridData
            },
            scrollable: false
        });
    }   




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签