使用AJAX从Textbox和Lookup获取价值

时间:2017-10-17 05:16:47

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

所以现在我正在开发一些软件工资单项目,现在我已经遇到了这类问题[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

在此更新请检查PIC

[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 ;
    }

这个控制器获取值后,(LOOPING)该值,之后,我取结果并在#gridWorkingPattern(在AJAX中)显示结果,(抱歉我的英文,我和#39) ; m new here)

更新

我试图从文本框查找中获取值,但不幸的是该值没有进入函数,我无法理解甚至可以使_ btnGenerate_onClick _功能正常工作

1 个答案:

答案 0 :(得分:0)

首先应该得到dx控件的实例,就像你这样:

df_test = df1[df1['col2'].notnull()] # find non-empty values
df_test = df_test.set_index(['col1'])
df2 = df2.set_index(['col1'])
df_test['scale'] = df_test['scale'] + df2['col2']
df_test['col2'] = df2['col2']
df_test = df_test.reset_index()
df1 = df1.set_index(['col1', 'scale']).fillna(df_test.set_index(['col1', 'scale'])).reset_index()

您可以访问以下值:

 scale  col1    col2
   1    item1   NaN
   2    item1   NaN
   3    item1   NaN
   4    item1   NaN
   5    item1   NaN
   6    item1     6
   7    item1   NaN
   8    item1   NaN
   9    item1     3
  10    item1   NaN
  11    item1   NaN
  12    item1   NaN
  13    item1   NaN
  14    item1   NaN
  15    item1   NaN
   1    item2   NaN
   2    item2   NaN
   3    item2   NaN
   4    item2   NaN
   5    item2   NaN
   6    item2   NaN
   7    item2   NaN
   8    item2     8
   9    item2   NaN
  10    item2     2
  11    item2   NaN
  12    item2   NaN
  13    item2   NaN
  14    item2   NaN
  15    item2   NaN
  ...