我的最终目标是让jqgrid根据数据内容自动设置列宽.作为前往那里的路径的一部分,我需要能够在加载数据之后设置列宽,这时我知道每列的最大宽度.但是,一旦我知道列的最大宽度,我如何在"loadComplete"事件中设置每列的宽度并使用每列的新宽度刷新网格?我在网上找到的大多数帖子都是关于网格的整体宽度.我想要的是设置每个列的宽度,如果总宽度太长,则自动显示水平滚动条.
更新:在看到Oleg的精彩演示之后,我最终在dqGrid(4.5.4)中对此进行了编码.这是我做的:
找到该功能
addJSONData = function(data,t, rcnt, more, adjust) {
Run Code Online (Sandbox Code Playgroud)
然后找到这个功能
            for (j=0;j<rowReader.length;j++) {
                v = $.jgrid.getAccessor(cur,rowReader[j]);
                rd[ts.p.colModel[j+gi+si+ni].name] = v;
                rowData.push(addCell(idr, v, j + gi + si + ni, i + rcnt, cur, rd));
                // my addtion: stores the largest header size
                var newWidth = v.length * 6; 
                if (ts.grid.headers[j].width < newWidth) {
                    ts.grid.headers[j].width = newWidth;
                }
            }
Run Code Online (Sandbox Code Playgroud)
然后在此函数结束之前,添加以下内容
        // my addition: invoke the resizing logic
        for (j = 0; j < rowReader.length; j++) {
            ts.grid.resizing = { idx: …Run Code Online (Sandbox Code Playgroud) 我刚开始学习Python,我对这个例子感到困惑:
def append_to(element, to=None):
    if to is None:
        to = []
    to.append(element)
    return to
Run Code Online (Sandbox Code Playgroud)
如果to被初始化一次,也不会to没有None的第二次它叫什么名字?我知道上面的代码有效,但无法解决这个"初始化一次"的描述.
我在codequizzes.com上看到了这个:
转换它
Run Code Online (Sandbox Code Playgroud)people = [["bob", 320], ["edgar", 152], ["maria", 125]]至
Run Code Online (Sandbox Code Playgroud){"bob" => 320, "edgar" => 152, "maria" => 125}回答:
Run Code Online (Sandbox Code Playgroud)Hash[people]要么
Run Code Online (Sandbox Code Playgroud)people.inject({}) do |memo, (name, number)| memo[name] = number memo end
以上都奏效了.但是,我在下面的单行答案没有:
people.inject({}) {|memo, (name, number)| memo[name] = number }
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
NoMethodError: undefined method `[]=' for 320:Fixnum
Run Code Online (Sandbox Code Playgroud)
我的单班轮有什么问题?