我的ASP.NET RangeValidator控件存在问题.
我想允许用户输入折扣金额,此金额必须为负数(<$ 0.00).我想验证在文本框中输入的金额是否为负值,所以我在页面标记中有这个:
<asp:TextBox ID="tbxDiscount" runat="server" />
<asp:RangeValidator ID="rvDiscount" runat="server" ControlToValidate="tbxDiscount"
MinimumValue="0.0" MaximumValue="0.0" EnableClientScript="true"
ErrorMessage="Please enter a negative value for a discount" />
Run Code Online (Sandbox Code Playgroud)
并且我尝试在页面呈现之前在我的代码中动态设置MinimumValue - 相当于我的商品价格.因此,如果该项目是69美元,我想将最小值设置为 - $ 69:
rvDiscount.MinimumValue = (-1.0m * Price).ToString();
Run Code Online (Sandbox Code Playgroud)
麻烦的是:我不断收到此错误消息:
最大值0.0不能小于rvDiscount的最小值-69.00
WTF?!?!?!我来自哪里,-69 $ IS不到0美元......那么问题是什么?
更重要的是:问题的解决方案是什么?
最近我与一位同事就单元测试进行了一次有趣的讨论.当合同发生变化时,我们正在讨论何时维持单元测试的效率降低.
也许任何人都可以告诉我如何解决这个问题.让我详细说明:
所以我们假设有一个类可以做一些漂亮的计算.合同说它应该计算一个数字,或者当它由于某种原因失败时返回-1.
我有合同测试谁测试.在我所有的其他测试中,我将这个漂亮的计算器存在.
所以现在我改变了契约,只要它无法计算就会抛出一个CannotCalculateException.
我的合同测试将失败,我将相应地修复它们.但是,我所有的模拟/存根对象仍将使用旧的合同规则.这些测试将成功,而他们不应该!
提出的问题是,凭借对单元测试的这种信念,可以对这些变化有多少信心......单元测试成功,但在测试应用程序时会出现错误.使用这个计算器的测试需要修复,这需要花费时间,甚至可能很多时候被抄袭/嘲笑......
你觉得这个案子怎么样?我从来没有想过它.在我看来,单元测试的这些变化是可以接受的.如果我不使用单元测试,我也会在测试阶段(测试人员)看到这样的错误.然而,我没有足够的信心指出什么会花费更多的时间(或更少).
有什么想法吗?
我有一个包含名称的表:
Name
----
John Smith
John Smith
Sam Wood
George Wright
John Smith
Sam Wood
Run Code Online (Sandbox Code Playgroud)
我想创建一个 select 语句来显示以下内容:
《约翰·史密斯 1》
《约翰·史密斯 2》
《萨姆·伍德 1》
《乔治·赖特 1》
《约翰·史密斯 3》
《萨姆·伍德2》
换句话说,我想为每个名称添加单独的计数器。有没有办法不使用游标来做到这一点?
我正在使用imagecache_create_path()和getimagesize()来获取imagecache生成的图像及其尺寸的路径.但是,如果我们第一次访问该页面时图像尚不存在,并且imagecache_create_path也不会生成它.
这是代码:
// we get the image path from a preset (always return the path even if the file doesn't exist)
$small_image_path = imagecache_create_path('gallery_image_small', $image["filepath"]);
// I get the image dimensions (only if the file exists already)
$data_small = list($width, $height, $type, $image_attributes) = @getimagesize($small_image_path);
Run Code Online (Sandbox Code Playgroud)
是否有任何API方法来获取路径并生成文件?换句话说,我可以从PHP生成图像(使用预设)而不在浏览器中显示它吗?
先感谢您
在代码中:
//file main.cpp
LINT a = "12";
LINT b = 3;
a = "3";//WHY THIS LINE INVOKES CTOR?
std::string t = "1";
//LINT a = t;//Err NO SUITABLE CONV FROM STRING TO LINT. Shouldn't ctor do it?
//file LINT.h
#pragma once
#include "LINT_rep.h"
class LINT
{
private:
typedef LINT_rep value_type;
const value_type* my_data_;
template<class T>
void init_(const T&);
public:
LINT(const char* = 0);
LINT(const std::string&);
LINT(const LINT&);
LINT(const long_long&);
LINT& operator=(const LINT&);
virtual ~LINT(void);
LINT operator+()const; //DONE
LINT operator+(const LINT&)const;//DONE …Run Code Online (Sandbox Code Playgroud) File.ReadAllLines()和之间有什么区别File.ReadAllText()?
我想在表上使用触发器,每次插入,更新或删除行时都会触发该触发器.
我写了这样的东西:
CREATE or REPLACE TRIGGER test001
AFTER INSERT OR DELETE OR UPDATE ON tabletest001
REFERENCING OLD AS old_buffer NEW AS new_buffer
FOR EACH ROW WHEN (new_buffer.field1 = 'HBP00')
Run Code Online (Sandbox Code Playgroud)
它的工作原理.因为如果插入,更新或删除行,我想做同样的事情,我想知道触发器中发生了什么.我想我可以设法找到是否插入或更新了行(我可以使用new_buffer检查old_buffer).如何知道该行是否已被删除?
我已经从 mono 项目下载了最新的源代码,编译它并且一切正常(c# 项目、mod_mono、xsp),除了 vb.net。Vbnc,mono 的 vb.net 编译器从源代码编译 mono 后不存在。
这是在 CentOS 5 上,在 Ubuntu 10.04 上,我通过 apt-get 安装了单声道软件包,而 vb.net 可以正常工作。
我错过了什么,或者如何获得 vb.net 支持?
我在FormsAuthentication方面遇到了很多问题, 而且我正在考虑将其存储login在Session?
Login:
Session["Auth.ClientId"] = clientId;
IsAuthenticated:
Session["Auth.ClientId"] != null;
Logout;
Session["Auth.ClientId"] == null;
Run Code Online (Sandbox Code Playgroud)
FormsAuthentication无论如何,我并没有真正使用大部分的花里胡哨.这是一个坏主意吗?
当我的iPhone应用程序收到内存警告时,当前不可见的UIViewControllers的视图将被卸载.在一个特定的控制器中,卸载视图和插座是相当致命的.
我正在寻找一种方法来防止这个视图被卸载.我发现这个行为相当愚蠢 - 我有一个缓存机制,所以当一个内存警告来临时 - 我卸载了大量的数据并且我释放了足够的内存,但我绝对需要这个视图不受影响.
我看到UIViewController有一个方法unloadViewIfReloadable,当内存警告到来时会调用它.有人知道如何告诉Cocoa Touch我的视图无法重新加载吗?
任何其他建议如何防止我的视图被卸载内存警告?
提前致谢
关于视图控制器的视图生命周期的Apple文档说:
didReceiveMemoryWarning - 默认实现仅在确定视图安全时才释放视图
现在......我didReceiveMemoryWarning用一个只调用NSLog的空函数覆盖它,让我知道收到了一个警告.但是 - 无论如何都要卸载视图.另外,根据什么标准确定视图是否可以安全卸载......哦!这么多的问题!