C# 如何在文本框中生成数据在网格线网格剑道UI中创建数据

C# 如何在文本框中生成数据在网格线网格剑道UI中创建数据,c#,asp.net-mvc-4,kendo-grid,C#,Asp.net Mvc 4,Kendo Grid,我想从网格线插入数据。我有3列(代码、日期、状态)。在代码字段中,我想生成一个由随机字符和数字组成的单词。凭证编码编辑关闭。和处于状态将只有有效的条件。我想在网格剑道UI中实现它。帮帮忙,我不知道怎么做 在我看来,我正在使用这段代码。帮我定制一下。多谢各位 看法 数据传送: @(Html.Kendo().Grid()) .名称(“网格”) .列(列=> { columns.Bound(p=>p.id_凭证).Hidden(); columns.Bound(p=>p.voucherCode).

我想从网格线插入数据。我有3列(代码、日期、状态)。在代码字段中,我想生成一个由随机字符和数字组成的单词。凭证编码编辑关闭。和处于状态将只有有效的条件。我想在网格剑道UI中实现它。帮帮忙,我不知道怎么做

在我看来,我正在使用这段代码。帮我定制一下。多谢各位

看法


数据传送:
@(Html.Kendo().Grid())
.名称(“网格”)
.列(列=>
{
columns.Bound(p=>p.id_凭证).Hidden();
columns.Bound(p=>p.voucherCode).Title(“Kode凭证”);
columns.Bound(p=>p.expDate).Title(“Tgl-Exp”).Format(“{0:dd-MMM-yyyy-HH:mm-WIB}”);
columns.Bound(p=>p.status).Title(“status”);
Command(Command=>{Command.Edit();Command.Destroy();}).Width(250);
})
.ToolBar(ToolBar=>ToolBar.Create())
.Editable(可编辑=>Editable.Mode(GridEditMode.InLine))
.Pageable()
.Sortable()
.可过滤()
.HtmlAttributes(新的{style=“height:570px;”})
.DataSource(DataSource=>DataSource
.Ajax()
.页面大小(10)
.Events(Events=>Events.Error(“错误处理程序”))
.Model(Model=>Model.Id(p=>p.Id\u凭证))
.Create(update=>update.Action(“凭证创建”、“凭证”)).Read(“凭证读取”、“凭证”)
.Update(Update=>Update.Action(“凭证更新”、“凭证”)).Read(“凭证读取”、“凭证”)
.Read(Read=>Read.Action(“凭证读取”、“凭证”))
.Destroy(update=>update.Action(“凭证删除”、“凭证”)).Read(“凭证读取”、“凭证”)
)
)
函数错误\u处理程序(e){
如果(如错误){
var message=“错误:\n”;
$。每个(例如错误、函数(键、值){
如果(值中的“错误”){
$.each(value.errors,function(){
消息+=此+“\n”;
});
}
});        
警报(信息);
}
}

单击“添加/编辑”按钮时,可以调用javascript函数。在javascript中,您可以按照自己喜欢的方式操作数据源

        .DataSource(dataSource => dataSource
                .Ajax()
                .PageSize(10)
                .Events(events => events.Error("error_handler"))
                .Model(model => model.Id(p => p.id_voucher))
                .Create(update => update.Action("voucher_Create", "Voucher")).Read("voucher_read", "Voucher")
                .Update(update => update.Action("voucher_Update", "Voucher")).Read("voucher_read", "Voucher")
                .Read(read => read.Action("voucher_read", "Voucher"))
                .Destroy(update => update.Action("voucher_Delete", "Voucher")).Read("voucher_read", "Voucher")
            )
    .Events(events => events.Edit("onEdit"))

**.Events(events => events.Edit("onEdit"))**      

in javascript:

        function onEdit(event) {
            var grid = $("#ActionsGrid").data("kendoGrid");
            var dataSource=grid.dataSource;
            //do stuff here
           event.model.voucherCode=Math.random();//http://www.w3schools.com/jsref/jsref_random.asp
         //make row uneditable follow this thread: http://www.telerik.com/forums/making-individual-rows-read-only
        }
显然,您不能使该行不可编辑,但可以替换该行中的html

代码示例:

<div class="tables">
    <div class="table-responsive bs-example widget-shadow">
        <h4>Data Propinsi:</h4>
            @(Html.Kendo().Grid<admission.Models.VoucherPreviewModel>()
    .Name("grids")
    .Columns(columns =>
    {
        columns.Bound(p => p.id_voucher).Hidden();
        columns.Bound(p => p.voucherCode).Title("Kode Voucher");
        columns.Bound(p => p.expDate).Title("Tgl Exp").Format("{0: dd MMM yyyy - HH:mm WIB}");
        columns.Bound(p => p.status).Title("Status");
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(250);
    })
    .ToolBar(toolbar => toolbar.Create())
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Pageable()
    .Sortable()
    .Filterable()
    .HtmlAttributes(new { style = "height:570px;" })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(10)
        .Events(events => events.Error("error_handler"))
        .Model(model => model.Id(p => p.id_voucher))
        .Create(update => update.Action("voucher_Create", "Voucher")).Read("voucher_read", "Voucher")
        .Update(update => update.Action("voucher_Update", "Voucher")).Read("voucher_read", "Voucher")
        .Read(read => read.Action("voucher_read", "Voucher"))
        .Destroy(update => update.Action("voucher_Delete", "Voucher")).Read("voucher_read", "Voucher")
    )
    .Events(events => events.Edit("onEdit"))
)
    </div>
</div>

<script type="text/javascript">
    function error_handler(e) {    
        if (e.errors) {
             var message = "Errors:\n";
             $.each(e.errors, function (key, value) {
             if ('errors' in value) {
               $.each(value.errors, function() {
                     message += this + "\n";
                    });
                  }
                });        
                alert(message);
        }
}

function onEdit(event) {
               event.model.voucherCode=makeid();
            }

function makeid() {
    var code = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    code = Math.random(1).toString().substring(3, 2);
    code += possible.charAt(Math.floor(Math.random() * possible.length));
    return code;
}
    </script>

数据传送:
@(Html.Kendo().Grid())
.名称(“网格”)
.列(列=>
{
columns.Bound(p=>p.id_凭证).Hidden();
columns.Bound(p=>p.voucherCode).Title(“Kode凭证”);
columns.Bound(p=>p.expDate).Title(“Tgl-Exp”).Format(“{0:dd-MMM-yyyy-HH:mm-WIB}”);
columns.Bound(p=>p.status).Title(“status”);
Command(Command=>{Command.Edit();Command.Destroy();}).Width(250);
})
.ToolBar(ToolBar=>ToolBar.Create())
.Editable(可编辑=>Editable.Mode(GridEditMode.InLine))
.Pageable()
.Sortable()
.可过滤()
.HtmlAttributes(新的{style=“height:570px;”})
.DataSource(DataSource=>DataSource
.Ajax()
.页面大小(10)
.Events(Events=>Events.Error(“错误处理程序”))
.Model(Model=>Model.Id(p=>p.Id\u凭证))
.Create(update=>update.Action(“凭证创建”、“凭证”)).Read(“凭证读取”、“凭证”)
.Update(Update=>Update.Action(“凭证更新”、“凭证”)).Read(“凭证读取”、“凭证”)
.Read(Read=>Read.Action(“凭证读取”、“凭证”))
.Destroy(update=>update.Action(“凭证删除”、“凭证”)).Read(“凭证读取”、“凭证”)
)
.Events(Events=>Events.Edit(“onEdit”))
)
函数错误\u处理程序(e){
如果(如错误){
var message=“错误:\n”;
$。每个(例如错误、函数(键、值){
如果(值中的“错误”){
$.each(value.errors,function(){
消息+=此+“\n”;
});
}
});        
警报(信息);
}
}
函数onEdit(事件){
event.model.voucherCode=makeid();
}
函数makeid(){
var代码=”;
var-mable=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”;
code=Math.random(1).toString()子字符串(3,2);
code+=可能的.charAt(Math.floor(Math.random()*可能的.length));
返回码;
}

对于使行不可编辑部分遵循我提到的线程。

您能给我更详细的解释吗。我是新来的。如何在更新或创建时获取随机代码并将其放入代码文本框中,使其成为不可编辑的。谢谢,点击“创建新数据”后,我会立即显示math.random中的数据??是的,我会说,试试看。这并不难。你的模型在javascript中可用。你能给我一个例子吗?你成功地使它工作了吗。我在代码中添加了一个示例,说明它应该是怎样的
<div class="tables">
    <div class="table-responsive bs-example widget-shadow">
        <h4>Data Propinsi:</h4>
            @(Html.Kendo().Grid<admission.Models.VoucherPreviewModel>()
    .Name("grids")
    .Columns(columns =>
    {
        columns.Bound(p => p.id_voucher).Hidden();
        columns.Bound(p => p.voucherCode).Title("Kode Voucher");
        columns.Bound(p => p.expDate).Title("Tgl Exp").Format("{0: dd MMM yyyy - HH:mm WIB}");
        columns.Bound(p => p.status).Title("Status");
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(250);
    })
    .ToolBar(toolbar => toolbar.Create())
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Pageable()
    .Sortable()
    .Filterable()
    .HtmlAttributes(new { style = "height:570px;" })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(10)
        .Events(events => events.Error("error_handler"))
        .Model(model => model.Id(p => p.id_voucher))
        .Create(update => update.Action("voucher_Create", "Voucher")).Read("voucher_read", "Voucher")
        .Update(update => update.Action("voucher_Update", "Voucher")).Read("voucher_read", "Voucher")
        .Read(read => read.Action("voucher_read", "Voucher"))
        .Destroy(update => update.Action("voucher_Delete", "Voucher")).Read("voucher_read", "Voucher")
    )
    .Events(events => events.Edit("onEdit"))
)
    </div>
</div>

<script type="text/javascript">
    function error_handler(e) {    
        if (e.errors) {
             var message = "Errors:\n";
             $.each(e.errors, function (key, value) {
             if ('errors' in value) {
               $.each(value.errors, function() {
                     message += this + "\n";
                    });
                  }
                });        
                alert(message);
        }
}

function onEdit(event) {
               event.model.voucherCode=makeid();
            }

function makeid() {
    var code = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    code = Math.random(1).toString().substring(3, 2);
    code += possible.charAt(Math.floor(Math.random() * possible.length));
    return code;
}
    </script>