如何从onOpen()功能代码动态定义电子表格的自定义功能?
function onOpen() {
//var s = SoapService.wsdl("http://example.com/service.wsdl", "serv");
//var funcs = s.getServerFunctions();
var funcs = { "pow2": "function (v) { return v*v};" }
for(var f in funcs)
{
this[f] = eval(funcs[f]) // define server functions as custom google-script functions for spreadsheet using this[function_name] = eval(function_code)
}
}
Run Code Online (Sandbox Code Playgroud)
=pow2()从任何单元格调用("pow2"是一个函数名称)我试图通过TypeBuilder在运行时生成一个类型.我正在使用MethodBuilder生成该类型的实例方法,但是我不想生成il via IlGenerator.Emit; 相反,我想创建一个表示方法的表达式,所以我可以将它转换为MethodBuilder的实例方法.
这可能吗?如果是这样,我如何将Expression转换为MethodBuilder实例方法?
我已经使用该Parsec库编写了一个文件解析器.我想使用Tasty测试框架编写一个高级单元测试,以确保解析器正确解析某些给定的文件.
我在以下目录结构中有三个格式良好的文件:
path/to/files -+
|-> fileA
|-> fileB
|-> fileC
Run Code Online (Sandbox Code Playgroud)
我想要:
path/to/filestestCase为每个文件创建一个文件,以确保成功解析文件的内容我设法构建了以下内容:
{-# LANGUAGE BangPatterns, FlexibleContexts #-}
module Test.MyParser
( testSuite
) where
import Control.Arrow ((&&&))
import Data.Map (Map,fromList,toList)
import System.Directory
import System.IO.Unsafe (unsafePerformIO) -- This is used for a hack
import Test.Tasty (TestTree,testGroup,withResource)
import Test.Tasty.HUnit
import Text.Parsec
-- | Determine if an Either is a Right or Left value
-- Useful for determining if a parse attempt was successful …Run Code Online (Sandbox Code Playgroud) 为简单起见,我已经包含了一个脚本,它通过名称动态调用函数:
var foo = "hello";
var bar = "world";
var function_name = "say_" + foo + bar;
// Since its name is being dynamically generated, always ensure your function actually exists
if (typeof(window[function_name]) === "function")
{
window[function_name](" World!");
}
else
{
throw("Error. Function " + function_name + " does not exist.");
}
function say_helloworld(the_word)
{
alert("Hello " + the_word);
}
Run Code Online (Sandbox Code Playgroud)
但函数say_helloworld的代码是以静态方式编写的.我想要像:
var function_implementation = 'function say_'+foo+bar+
'(the_world){alert("Hello " + the_world);}';
eval(function_implementation);
Run Code Online (Sandbox Code Playgroud)
但不使用eval().有一种更加丑陋的方法:进行AJAX调用以获得该功能.
你能看到更好的方法吗?
我正在用C#教自己中间语言(IL)生成,而且我已经被困了几个小时 - 看起来像是如何System.Windows.Forms.dll从动态程序集中引用(例如) ,我正在使用AppDomain.CurrentDomain.DefineDynamicAssembly和System.Reflection.Emit...基于http://olondono.blogspot.com/2008/02/creating-code-at-runtime.html上最优秀的例子.
我有一个基本的TransferObjectDllGenerator工作,但现在我想从(仅)生成的程序集中引用现有的库,并且无法弄清楚如何.
这个问题引导我参加这个AppDomain.CurrentDomain.AssemblyResolve活动.我尝试实现一个事件处理程序,但它永远不会触发,所以我想我已经做了一些基本上愚蠢的事情,比如把事件处理程序放在完全错误的地方?
任何指向正确方向的人都会非常感激.
这是我的主线...有趣的是 // <<-- Commented thus
using System;
using System.Reflection;
//using System.Windows.Forms; (and removed the project's Reference to System.Windows.Forms)
namespace ILGen
{
/// <summary>
/// Generates .\bin\$whatever\PersonLibrary.dll containing MSIL equivalent to:
/// namespace PersonLibrary {
/// public class Person {
/// public string FirstName { get; set; }
/// public string LastName { get; set; }
/// public Person() { }
/// public …Run Code Online (Sandbox Code Playgroud) protected void addMoreDay_btn_Click(object sender, EventArgs e)
{
Control OneMoreDay = LoadControl("~/controls/Days/DayAdd.ascx");
Days_div.Controls.Add(OneMoreDay);
}
Run Code Online (Sandbox Code Playgroud)
我将我的userControl动态加载到div元素..但问题是它只能运行一次!..我的意思是我单击addMoreDay_btn按钮,它工作,然后我尝试再次单击它不会创建我的控件的另一个实例!
编辑
我认为它可以工作,但它不会保存最后创建的..它只是用新创建的控件替换它..但我仍然不知道如何解决这个问题!= S
我试图创建应用程序whad动态添加控件.我有主页,我的asp:内容在这里:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:ScriptManager ID="scriptManager1" runat="server">
</asp:ScriptManager>
<div style="margin: 10px">
<asp:UpdatePanel ID="updatePanel1" runat="server">
<ContentTemplate>
<asp:PlaceHolder runat="server" ID="myPlaceHolder" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnAdd" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
<asp:Button ID="btnAdd" runat="server" Text="Add" />
Run Code Online (Sandbox Code Playgroud)
点击btnAdd后,我想添加两个文本框.我试着像http://jagdeepmankotia.wordpress.com/2010/01/30/dynamically-add-controls-in-asp-net-c/
这是我的代码:
static int myCount = 1;
private TextBox[] color;
private TextBox[] text;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
color = new TextBox[myCount];
text = new TextBox[myCount];
for (int i = 0; i < myCount; i++)
{
TextBox tbColor = new TextBox();
tbColor.ID = …Run Code Online (Sandbox Code Playgroud) 我基于我从服务器获取的JSON字符串向JQ Mobile表添加行.
刷新后第一次进入页面时,没有添加任何样式,但是每次都可以正常工作.
有没有办法像列表视图一样刷新/初始化表格?
下面的代码是我添加行的地方:
$.each(result, function() {
var imgString;
if(result[i]["status"] == 'Y') {
imgString = '<img src= images/checkMark.png height=\"40\" width=\"40\" align=\"middle\">';
} else {
imgString = '';
}
$('#pickupTable > tbody:last').append('<tr><td class=\"tableRow10\">' + imgString +
'<td class=\"tableRow80\"><a><button class=\"selectPickup\" pickupCode = \"'+
result[i]["id"] + '\"> '+ result[i]["address"] +'</button></a></td></tr>');
i++;
});
$('#pickupTable > tfoot:last').append('<tr><td colspan="5">Total Pick Ups: '
+result.length + '</td></tr>');
Run Code Online (Sandbox Code Playgroud) 我有一个嵌入YouTube视频的IFrame.我想创建一个文本框,用户(管理员)可以粘贴视频的新src(URL),IFrame获取新的源.这是我到目前为止:
protected void Edited_Click(object sender, EventArgs e)
{
// HtmlControl frame1 = (HtmlControl)this.FindControl("frame1");
string url = TextBox1.Text;
frame1.Attributes["src"] = url;
}
Run Code Online (Sandbox Code Playgroud)
在HTML代码中是iframe:
<div id="video">
<iframe title="YouTube video player" runat="server" width="420"
frameborder="1" style="height: 265px; float: left;
text-align: center;" id="frame1"
name="frame1" align="middle"></iframe>
<br />
</div>
Run Code Online (Sandbox Code Playgroud)
我没有在开头设置任何src,但是当我在文本框中粘贴URL并点击按钮时,Iframe不会显示任何内容.
我在我的网站上安装了Tooltipster ,但它不适用于动态添加的内容.
您可以在"按选择排序游戏(默认最新游戏)"框中看到它,当我选择按"最新第一","最受欢迎"等排序时......当生成内容时,Tooltipster看不到那个内容.不知怎的,我必须告诉Tooltipster这个内容.
这是Tooltipster代码:
<head></head>
<link rel="stylesheet" type="text/css" href="http://www.heroplaysonline.com/css/tooltipster.css" />
<script type="text/javascript" src="http://www.heroplaysonline.com/js/jquery.tooltipster.min.js"></script>
<script>
$(document).ready(function() {
$('.tooltip').tooltipster({
position: 'bottom-left',
contentAsHTML: 'true',
animation: 'grow',
theme: '.my-custom-theme'
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
以下是生成内容的脚本:
jQuery(document).ready(function($){
$.fn.vAlign = function() {
return this.each(function(i){
var ah = $(this).height();
var ph = $(this).parent().height();
var mh = Math.ceil((ph-ah) / 2);
$(this).css('margin-top', mh);
});
};
$('#sortable-game-box-order select').change(function() {
var sorturl = $(this).attr("value");
var loaderheight = $('#sortable-game-box-inner-content').height();
$('#sortable-game-box-loader').css('height', loaderheight+13);
$('#sortable-game-box-loader-content').css('height', loaderheight+13);
$('#sortable-game-box-loader-content img').vAlign();
$('#sortable-game-box-list').hide();
$('#sortable-game-box-loader').show();
$('#sortable-game-box-inner').load(sorturl + ' #sortable-game-box-inner-content', function() …Run Code Online (Sandbox Code Playgroud) c# ×4
asp.net ×3
javascript ×3
.net ×1
assemblies ×1
call ×1
findcontrol ×1
function ×1
haskell ×1
html-table ×1
hunit ×1
iframe ×1
io-monad ×1
jquery ×1
lambda ×1
reference ×1
tooltip ×1
tooltipster ×1
typebuilder ×1
unit-testing ×1
webforms ×1