我无处可寻.我想在gridview中的数据绑定表达式中引用行对象本身,如下所示:
<asp:TemplateField HeaderText="Description">
<ItemTemplate>
<asp:Label runat="server"
Text = '<%# GetPendingReason(Eval("this")) %>' />
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为"this"不涉及任何属性.引用单个属性可以正常工作,但是如何引用当前行?
我有一些变量名称字符串,最初必须是字符串(由于文件IO).
这些变量对应的变量是PyQt4小部件的变量名,嵌入两个类中.
我需要这些字符串能够转换为实际的变量名称,以便在函数中使用它们.
(有点像你在'一个数字的字符串')
这是代码(显示疯狂类)
第一个文件
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.VariableName = QWidget(whatever)
Run Code Online (Sandbox Code Playgroud)
第二个文件
from FIRST_FILE import Ui_MainWindow
class Start(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
def ResetDropBoxes(self):
X = "VariableName"
self.ui.X.Function()
Run Code Online (Sandbox Code Playgroud)
有些人可能认为这是Pyuic4(Qt Designer)生成的python代码的格式
第二个文件的最后两行是麻烦.我收到错误消息"Ui_MainWindow()没有属性'X'".
我不知道该去哪里,除了尝试'eval'.我尝试过诸如......
X = self.ui.eval("VariableName")
Run Code Online (Sandbox Code Playgroud)
这提示错误"Ui_MainWindow()没有属性'eval'
X = eval("VariableName")
Run Code Online (Sandbox Code Playgroud)
"未定义VariableName"
X = "VariableName"
eval(self.ui.X.Function())
Run Code Online (Sandbox Code Playgroud)
"Ui_MainWindow()没有属性'X'"
我可以使用任何和所有帮助这件事!
我觉得eval让我更近了一步,但使用这些嵌套类会抑制它!
HALP"?
详细信息:
- Python 2.7.1
- Windows 7(32位)
- IDLE 1.8
- PyQt4
- Qt Designer
为什么不能"{opacity: 1.0, width: '132px'}"使用eval()as 来评估字符串?
eval("{opacity: 1.0, width: '132px'}");
// invalid label
// {opacity: 1.0, width: '132px'}
// ---------------?
eval("v = {opacity: 1.0, width: '132px'}");
// works!
Run Code Online (Sandbox Code Playgroud) 我遇到以下代码的问题.我只是猜测这是一个范围问题.
public function run() {
return eval('$this->config();');
// This will return null.
return $this->config();
// This will return my config array right.
}
Run Code Online (Sandbox Code Playgroud)
在有人要求之前:
有人对这个终端事有什么建议吗?(我的基本问题仍然是评估...)
'eval'区块捕获'死'尝试.但是在下面的代码中,它无法捕获"未初始化的值"异常.
perl代码 -
#!/usr/bin/perl
package poc::template;
use strict;
use warnings;
use Log::Log4perl;
my $log_conf = "../conf/log4perl.conf";
Log::Log4perl::init($log_conf);
my $logger = Log::Log4perl->get_logger();
sub doSome {
$logger->info('doing something');
my $add = $ARGV[0] + 4;
}
#main
$logger->info('start');
eval { doSome(); };
if ($@) {
$logger->info('error');
}
$logger->info('stop');
Run Code Online (Sandbox Code Playgroud)
这是日志conf -
log4perl.rootLogger = DEBUG, SCREEN
log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen
log4perl.appender.SCREEN.stderr = 0
log4perl.appender.SCREEN.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.SCREEN.layout.ConversionPattern = %d [%M:%L] %p %F{2} - %m%n
Run Code Online (Sandbox Code Playgroud)
这是脚本输出 -
2013/02/03 16:47:02 [main:::18] INFO template\POCTemplate.pl - start
Use of uninitialized …Run Code Online (Sandbox Code Playgroud) 我有一些HTML我想要么.prepend,.append或者.html它变成一个div容器.
现在我有
$.globalEval('$("#target").'+ method + '(html)'
Run Code Online (Sandbox Code Playgroud)
这是对...的评价
$('#target').append(html)
Run Code Online (Sandbox Code Playgroud)
要么
$('#target').prepend(html)
Run Code Online (Sandbox Code Playgroud)
要么
$('#target').html(html)
Run Code Online (Sandbox Code Playgroud)
但是在诉诸时我觉得很脏eval.有备用吗?
我希望这段代码设置plt为10:
> var = "plt"
> eval(paste0(var, "<-", 10))
[1] "plt<-10"
Run Code Online (Sandbox Code Playgroud)
但相反,它返回一个字符串.
我试过eval(as.expression(paste0(var, "<-", 10)))和其他选项,但它仍然没有给出预期的结果.
代码有什么问题?
我无法重新分配功能.我想分配一个先前定义的函数,drawScene一个不同的方法.
function fSwap(funcName, code) {
eval(funcName) = eval(code);
}
fSwap("drawScene", "function drawScene() { /* Do something */ }");
Run Code Online (Sandbox Code Playgroud)
我觉得这应该工作,但由于某种原因eval(funcName)不是左值,它返回错误ReferenceError: invalid assignment left-hand side.更令人费解的是:
var a = function test() {return 0;};
alert(a === eval("a"));
eval("a") = function test() {return 1;};
Run Code Online (Sandbox Code Playgroud)
提供警报,true但不允许我分配给该功能a.
我唯一的猜测是,出于安全原因,eval()不返回左值.如果是这样,我如何实现fSwap(),以便它接收两个字符串并将代码分配给给定的函数名?
我有一个自动完成功能,回调数据返回.许多不同的实例都使用此自动完成功能.
$.fn.acItem = function(callback){
var self = this;
$(self).autocomplete({
(...)
select: function(e, ui){
// Eval for calling anonymous function (right?)
window[callback](ui.item);
}
});
};
Run Code Online (Sandbox Code Playgroud)
我也在使用命名空间
var Agency = {
init: function() {
var self = this;
self.registerAgency.addItem();
},
registerAgency: {
(...)
addItem: function(item){
if(!item){
(...)
// Initiate autocomplete on input
$('.search-item').acItem('Agency.registerAgency.addItem');
} else {
// Do something with Item
}
}
}
Agency.init();
Run Code Online (Sandbox Code Playgroud)
window[callback](ui.item)如果我没有使用命名空间,请使用作品.但是对于命名空间,它会变得有点复杂,如Jason Bunting所描述的那样.
由于使用了不同的命名空间acItem(),因此需要知道在回调中调用哪个函数.但许多人强烈反对使用Eval来调用匿名函数.
那么对匿名函数进行回调的好方法是什么?
它可能会引起人们的兴趣并节省几个小时,一个讨厌的捆绑问题,eval来自一个文件,而函数来自第二个文件.
eval('console.log(0)')
(function(x){console.log(x)})(1)
Run Code Online (Sandbox Code Playgroud)
将导致:未捕获TypeError:eval(...)不是函数
这是修复
eval('console.log(0)');
(function(x){console.log(x)})(1)
Run Code Online (Sandbox Code Playgroud)
缺少分号,我几次读过JS中的分号,大部分时间都是.
任何评论为什么eval在这种情况下不是一个函数?