我有一张时间表数据的Google电子表格; 它每个月都有一张表,每张表有很多六个列块,每个客户一个块.
我创建了一个摘要表,其中包含每个客户的总数并将其显示在列表中:
function getClientTotals(sheetname, colcount)
{
colcount = colcount ? colcount : 6;
var res;
var ss = SpreadsheetApp.openById('myid_goes_here');
if(ss)
{
res = [];
var totrow = ss.getRange(sheetname + '!A1:ZZ1').getValues()[0];
for(var i = 0; i < totrow.length; i += colcount)
{
res.push([totrow[i], totrow[i + colcount - 1]]);
}
}
return res;
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的摘要表中添加了一个单元格,=getClientTotals($C$7,$C$8)其中包含月份工作表名称和每个客户端的列数(如果是"模式"修改).
这一切都正常,但是,当源数据发生更改时,它不会更新.我添加了一个onEdit触发器; 没有快乐.如果您转到脚本编辑器并点击"保存",它会更新,但这没有用.我错过了什么吗?
google-apps google-sheets google-apps-script custom-function
我有一个CheckBoxList(框架版本4),RepeatLayout设置为UnOrderedList.我想在每个LI上生成一个类来简化一些客户端编码和样式,但是,我无法得到它.
我重写RenderItem方法如下:
protected override void RenderItem(ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer)
{
ListItem item = Items[repeatIndex];
String id = ClientID + "_" + repeatIndex.ToString();
String name = UniqueID + "$" + repeatIndex.ToString();
writer.Write(@"<li class='{0}'>", "tcsdrp_day" + (item.Selected ? " selected" : ""));
writer.Write(@"<input id='{0}' type='checkbox' name='{1}' value='{2}'>", new object[] { id, name, item.Value });
writer.Write(@"<label for='{0}'>{1}</label>", new object[] { id, item.Text });
writer.Write(@"</li>");
}
Run Code Online (Sandbox Code Playgroud)
但是,我得到了一大堆空白LI,所以很明显它们是在调用者或其他地方呈现的,而我无法在我的生活中找到合适的地方.
现在通过将类添加到ListItems来解决它,但是这创建了一个额外的SPAN,我理想地想要丢失它.
这样做有什么好办法吗?
编辑:这是一个减少演示; 最终版本将具有基于原始数据项属性生成不同类的逻辑,以防有人想知道为什么我需要添加一个类.
编辑2:我现在已经解决了通过更改RenderItem以使用标签包装输入样式来简化标记的直接问题:
writer.Write(@"<label class='{0}'>", labelclass);
writer.Write(@"<input id='{0}' type='checkbox' name='{1}' value='{2}'{3}>", …Run Code Online (Sandbox Code Playgroud) 我正在努力使dotLESS @import拥有一个单独的变量文件; 我只是经常得到"变量未定义".
如果我浏览到变量配置文件,它可以工作; 如果我把变量内联在主样式表中就行了; 但是在@import中,没有骰子.我将.css和.less映射到扩展名,但是如果我只使用.less,它也不起作用.
变量文件LESS-config.less是:
/*
.LESS VARIABLES
*/
@mbw_dark_cyan: #1293b5;
@mbw_cyan: #11add4;
@mbw_magenta: #e935da;
@control_text: #ffffff;
@action_delete: #ff5400;
@section_level1_bg: @mbw_dark_cyan;
@section_level1_fg: @control_text;
@button_bg: @mbw_dark_cyan;
@button_fg: @control_text;
@button_icon: @control_text;
@data_table_header: @mbw_cyan;
.dummy {
color: @control_text;
}
Run Code Online (Sandbox Code Playgroud)
其呈现为:
/*
.LESS VARIABLES
*/
.dummy {
color: #ffffff;
}
Run Code Online (Sandbox Code Playgroud)
调用样式表main.css是:
@import (less) '/css/LESS-config';
button {
background: @button_bg;
}
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
variable @button_bg is undefined on line 4 in file '/css/main.css':
[3]: button {
[4]: background: @button_bg;
----------------^
[5]: …Run Code Online (Sandbox Code Playgroud) 试图在Plotly创造一个风玫瑰; 实际的图表显示正常,但我不想要任何一个悬停工具提示.hoverinfo:none似乎不起作用; 我究竟做错了什么?
var json =
{"RequestID":null,"AppCode":"0","AppMessage":"OK","Meta":null,"Data":{"Series":[{"r":[23.658536585365852,19.878048780487806,7.8048780487804876,5.8536585365853666,13.292682926829269,6.463414634146341,4.024390243902439,19.024390243902438],"t":["0","45","90","135","180","225","270","315"],"name":"\u003e 25","marker":{"color":"#FF0000"},"type":"area","hoverinfo":"none"},{"r":[23.658536585365852,19.878048780487806,7.8048780487804876,5.8536585365853666,13.292682926829269,6.463414634146341,4.024390243902439,19.024390243902438],"t":["0","45","90","135","180","225","270","315"],"name":"10 - 25","marker":{"color":"#ED850C"},"type":"area","hoverinfo":"none"},{"r":[21.707317073170728,18.414634146341463,7.0731707317073171,5.7317073170731714,12.804878048780488,5.975609756097561,3.7804878048780486,17.926829268292682],"t":["0","45","90","135","180","225","270","315"],"name":"5 - 10","marker":{"color":"#3F3F3F"},"type":"area","hoverinfo":"none"},{"r":[19.756097560975608,17.4390243902439,6.4634146341463419,5.1219512195121961,11.585365853658537,5.1219512195121952,3.4146341463414633,15.487804878048781],"t":["0","45","90","135","180","225","270","315"],"name":"2 - 5","marker":{"color":"#2A4354"},"type":"area","hoverinfo":"none"},{"r":[17.073170731707314,13.780487804878048,5.3658536585365857,4.6341463414634152,10,3.9024390243902443,3.0487804878048781,12.073170731707318],"t":["0","45","90","135","180","225","270","315"],"name":"1 - 2","marker":{"color":"#5486A9"},"type":"area","hoverinfo":"none"},{"r":[11.829268292682926,9.2682926829268286,3.2926829268292686,2.8048780487804881,7.4390243902439019,3.1707317073170733,2.1951219512195119,8.536585365853659],"t":["0","45","90","135","180","225","270","315"],"name":"\u003c 1","marker":{"color":"#68A7D3"},"type":"area","hoverinfo":"none"}]}};
var data = json.Data.Series;
var layout = {
title: 'Wind Speed Distribution in Laurel, NE',
font: {size: 11},
legend: {font: {size: 16}},
radialaxis: {ticksuffix: '%'},
orientation: 270,
hovermode: 'none',
yaxis: {
}
};
Plotly.newPlot('myDiv', data, layout);
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用a来创建一个IEqualityComparer用于比较字符串的自定义的自定义Regex,而我真的只是不知道它正在做什么.
这是来自LinqPad测试的代码.
比较器:
public class RegexEqualityComparer : EqualityComparer<string>
{
public RegexEqualityComparer(string pattern, RegexOptions options = RegexOptions.None)
{
_re = new Regex(pattern, options);
}
public RegexEqualityComparer(Regex re)
{
_re = re;
}
public override bool Equals(string x, string y)
{
bool res = false;
if (Object.ReferenceEquals(x, y))
res = true;
else if (x != null && y != null)
res = _re.IsMatch(x) && _re.IsMatch(y);
String.Format("RES: {0}, {1} = {2}", new object[] { x, y, res }).Dump();
return …Run Code Online (Sandbox Code Playgroud)