【问题标题】:Get Value from Textbox and Lookup using AJAX使用 AJAX 从文本框和查找中获取值
【发布时间】:2017-10-17 05:16:46
【问题描述】:

所以现在我正在开发一些软件工资单项目,现在我遇到了这种问题[CLICK HERE FOR THE PIC] The example code for what i'm doing(Razor)

<td style="padding-right:10px;">
                            @(Html.DevExtreme().TextBoxFor(model => model.Cycle)
                                    .ID("txtDay")
                                    .Width(100)
                            )
                        </td>
                        <td>
                            @(Html.DevExtreme().LookupFor(model => model.WorkingShiftId)
                                    .ID("lookupWorkingShiftId")
                                    .DataSource(d => d.WebApi()
                                    .Controller("WorkingShiftAPI")
                                    .LoadAction("GetAllWorkingShift")
                                    .Key("id")
                                    )
                                    .ValueExpr("id")
                                    .DisplayExpr("name")
                                    .Width(290)
                            )
                        </td>
                        <td style="padding-left:20px;">
                            @(Html.DevExtreme().Button()
                                .ID("btnGenerate")
                                .Type(ButtonType.Default)
                                .Text("Generate")
                                .OnClick("btnGenerate_OnClick")
                                //.Hint("Generate")
                            //.UseSubmitBehavior(true)
                            )
                        </td>

所以我想做的是从文本框和查找中获取值,以及触发器的生成按钮

#PS,目前在这个项目中,我在 Visual Studio 和 ASP.NET Core 2.0 中使用 DevExtreme

在此更新,请查看图片

[HERE FOR THE PIC]

function btnGenerate_OnClick(data) {
    var url = '@Url.Action("getCycleResult", "WorkingPattern")';

    var Cycle = $("#txtDay").dxTextBox("instance");
    Cycle.option("value", data.Cycle);

    var WorkingShiftId = $("#lookupWorkingShiftId").dxLookup("instance");
    WorkingShiftId.option("value", data.WorkingShiftId);


    var confirmGenerate = true;
    if (confirmGenerate == true) {
        @*urlString = '@Url.Action("getCycleResult", "WorkingPattern")';*@

        $.ajax({
            url: url, // '@Url.Action("getCycleResult", "WorkingPattern")'
            type: 'GET',
            data: { Cycle, WorkingShiftId },


            success: function (data) {

                alert("in");

                var dataWorkingPattern = $("#gridWorkingPattern").dxDataGrid({
                    dataSource: data,
                    columns: ["cycle","workingShiftId"]

                });

            }

        })

    }

}

为了实现这一点,我使用 AJAX 从文本框和查找中获取值

[HttpGet]
    public List<WorkingPatternDetail> getCycleResult(int Cycle, Guid WorkingShiftId)
    {
        List<WorkingPatternDetail> oWorkingPatternDetailList = new List<WorkingPatternDetail>();

        for (var i = 1; i < Cycle+1; i++)
        {
            WorkingPatternDetail oWorkingPatternDetail = new WorkingPatternDetail();
            oWorkingPatternDetail.Id = Guid.NewGuid();
            oWorkingPatternDetail.Cycle = i;
            oWorkingPatternDetail.WorkingShiftId = WorkingShiftId;
            oWorkingPatternDetailList.Add(oWorkingPatternDetail);
        }


        return oWorkingPatternDetailList ;
    }

这是控制器在获取值后,(循环)值,然后,我获取结果并在#gridWorkingPattern(在AJAX中)中显示结果,(对不起我的英语,我新的)

更新

我试图从 TextboxLookup 中获取值,但不幸的是该值没有进入函数,我什至无法获取 _ btnGenerate_onClick_功能起作用

【问题讨论】:

    标签: c# html razor asp.net-core-mvc asp.net-core-2.0


    【解决方案1】:

    您应该首先获取 dx 控件的实例,在您的情况下是这样的:

    var txtDay = $("#txtDay").dxTextBox().dxTextBox("instance");
    var workingShift = $("#lookupWorkingShiftId").dxLookup().dxLookup("instance");
    

    您可以像这样访问值:

    var day = txtDay.option("value");
    var shiftId = workingShift.option("value");
    

    【讨论】:

    • ,它有效!谢谢罗伯先生!但是你能解释一下为什么我的代码不能以这种方式工作......var Cycle = $("#txtDay").dxTextBox("instance"); Cycle.option("value", data.Cycle); var WorkingShiftId = $("#lookupWorkingShiftId").dxLookup("instance"); WorkingShiftId.option("value", data.WorkingShiftId);
    • $("#txtDay") 是一个 jQUery 选择器。比调用 dxTextBox() 实际上构建控件,最后调用 dxTextBox("instance") 返回 Devextreme 对象的实例,即 dxTextBox。在您的示例中,您正在执行 $("#txtDay").dxTextBox("instance") 而实际上应该是 $("txtDay").dxTextBox().dxTextBox("instance")
    猜你喜欢
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多