Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用单选按钮选择jqGrid行?_C#_Jqgrid - Fatal编程技术网

C# 如何使用单选按钮选择jqGrid行?

C# 如何使用单选按钮选择jqGrid行?,c#,jqgrid,C#,Jqgrid,我不需要编辑,只需要一个单选按钮就可以选择(甚至不是多选)行。我还没有找到其他相关的帖子。我已经有了几列数据,但我不知道如何在每个组的第一列中放置一个单选按钮 jqGrid使用一个不可见的列进行渲染——当用户单击按钮时,我想发布一个唯一的ID。这对我来说应该足够了。因此,我还需要能够识别在激发$.ajax({…})时选择了哪一行 网站上似乎没有足够的文档让我弄明白。我一直在寻找某种API,但它只适用于PHP。以下是我在模型中生成网格的方式: return new JQGrid {

我不需要编辑,只需要一个单选按钮就可以选择(甚至不是多选)行。我还没有找到其他相关的帖子。我已经有了几列数据,但我不知道如何在每个组的第一列中放置一个单选按钮

jqGrid使用一个不可见的列进行渲染——当用户单击按钮时,我想发布一个唯一的ID。这对我来说应该足够了。因此,我还需要能够识别在激发
$.ajax({…})时选择了哪一行

网站上似乎没有足够的文档让我弄明白。我一直在寻找某种API,但它只适用于PHP。以下是我在模型中生成网格的方式:

return new JQGrid
        {
            Columns = new List<JQGridColumn>()
            {
                new JQGridColumn
                {
                    DataField = "CallID", //this is the unique ID I need to postback
                    Visible = false
                },
                new JQGridColumn
                {
                    DataField = "Name",
                    HeaderText = "Full Name",
                    PrimaryKey = false,
                    Editable = false,
                    Width = 120
                },
                new JQGridColumn
                {
                    DataField = "CallStartTime",
                    HeaderText = "Call Placed On",
                    PrimaryKey = false,
                    Editable = false,
                    Width = 130
                }
            }
        };

但是,ajax post请求数据之间的延迟太长,我猜代码无法执行。

当我在模型中查询数据时,我能够装配这个。当我创建网格行然后JSON'ify时,我手动输入单选按钮的HTML,将其值属性设置为模型中的CallID:

var gridrows = from call in calls
               select new
               {
                   i = call.CallID,
                   cell = new string[] { 
                       //call.CallID.ToString(),
                       "<input type=\"radio\" name=\"selectedCall\" value=\"" + call.CallID + "\" />",
                       call.Name, 
                       call.CallStartTime.ToString("MM/dd/yyyy hh:mm tt")
                   }
               };

我建议您也这样做,但在客户端。您可以使用在自定义格式化程序函数中构造HTML片段:

{ name: 'CallID', index: 'CallID', width: 50,
  formatter:function (cellvalue, options, rowObject) {
      return '<input type="radio" name="selectedCall" value="' + cellvalue + '"' />"
  }
},
{name:'CallID',index:'CallID',宽度:50,
格式化程序:函数(cellvalue、options、rowObject){

return'我需要一个更简单的解决方案,所以我想出了这个方法,它使用内置的multiselect,而不是向网格中添加col


干杯,

我必须测试一下--我想可能有一种方法可以使用自定义格式化程序,但我不知道该如何使用。@David:我只试着在客户端生成与服务器端相同的单选按钮。我不太明白像
这样的单选按钮如何帮助您。它将看起来像一个ckeckbox。如果您的问题尚未解决,您能否发布一个图片的HTML代码片段,显示您希望在表格单元格中包含的内容。单选按钮通过允许在下一次回发的上下文中选择行来帮助我。在下一次回发中,我收到一个名为
selectedCallXXX
where XX的元素X是我需要处理的唯一ID。@David:为什么不直接使用
multiselect:true
new JQGridColumn
{
    DataField = "CallID",
    HeaderText = "Select",
    Width = 50
},   
{ name: 'CallID', index: 'CallID', width: 50,
  formatter:function (cellvalue, options, rowObject) {
      return '<input type="radio" name="selectedCall" value="' + cellvalue + '"' />"
  }
},
multiselect : true, //Must be true to allow for radio button selection
beforeSelectRow: function(rowid, e)
{
    // Allow only one selection
    $("#myGrid").jqGrid('resetSelection');
    return (true);
},
beforeRequest : function() {
    //Remove multi-select check box from grid header
    $('input[id=cb_myGrid]', 'div[id=jqgh_myGrid_cb]').remove();
},
loadComplete : function () {
    //Convert grid check boxes to radio buttons
    $('input[id^="jqg_myGrid_"]').attr("type", "radio");
}