如果绑定到TextEditor时我使用以下语法:
Text='<%# Bind("DESCRIPTION") %>'
Run Code Online (Sandbox Code Playgroud)
提交表单时出现以下错误:
InnerMessage:Object reference not set to an instance of an object.
InnerStackTrace:
at DotNetNuke.UI.UserControls.TextEditor.get_Text()
at ASP.desktopmodules_mymodule_view_ascx.__ExtractValues__control16(Control __container)
at Telerik.Web.UI.GridTemplateColumn.FillValues(IDictionary newValues, GridEditableItem editableItem)
at Telerik.Web.UI.GridEditableItem.ExtractValues(IDictionary newValues)
at Telerik.Web.UI.GridTableView.ExtractValuesFromItem(IDictionary newValues, GridEditableItem editedItem)
at Telerik.Web.UI.GridItemBuilder.CreateItems(GridGroupingContext group)
Run Code Online (Sandbox Code Playgroud)
似乎调用Text属性getter在数据绑定层中失败.
如果我将调用替换为与Eval绑定:
Text='<%# Eval("DESCRIPTION") %>'
Run Code Online (Sandbox Code Playgroud)
然后提交会忽略该字段,但我可以捕获数据源更新属性并手动从文本属性中获取文本并将其放在实体上.Text属性getter不会为我抛出错误.
为什么不自动绑定工作?注意,此TextEditor位于DnnGrid的EditItemTemplate中.我不确定这是否相关 - 我没有尝试绑定到网格外的一个.
我正在使用FileStream写入文件,并使用Process Monitor观察底层系统调用.我在生产部署中遇到了一些文件锁定问题,所以我正在密切关注这些细节.
此示例代码:
using (FileStream fs = new FileStream("c:\\temp\\test.txt", FileMode.Create, FileAccess.Write, FileShare.Read))
{
fs.Write(new byte[] { 1, 2, 3, 4, 5 }, 0, 5);
fs.Close();
}
Run Code Online (Sandbox Code Playgroud)
导致以下系统调用:
9:27:09.4561092 AM ConsoleApplication1.vshost.exe 2320 CreateFile C:\temp\test.txt SUCCESS Desired Access: Generic Read/Write, Disposition: OverwriteIf, Options: Synchronous IO Non-Alert, Non-Directory File, Open No Recall, Attributes: n/a, ShareMode: Read, AllocationSize: 0, OpenResult: Overwritten
9:27:12.2217409 AM ConsoleApplication1.vshost.exe 2320 WriteFile C:\temp\test.txt SUCCESS Offset: 0, Length: 5
9:27:12.2219901 AM ConsoleApplication1.vshost.exe 2320 CloseFile C:\temp\test.txt SUCCESS
9:27:12.2234484 AM ConsoleApplication1.vshost.exe …Run Code Online (Sandbox Code Playgroud) 我正在使用NHibernate,需要检索和处理多达200万行.理想情况下,我可以处理每一行 - 一次一个 - 没有NHibernate同时加载所有200万内存(因为,你知道,这会伤害).
我更喜欢得到一个IEnumerable,它会为每次读取迭代地调用数据读取器,这样我就可以处理读取的数据 - 然后丢弃它.通过这样做,我节省了大量的内存,并开始更快地处理结果.我还可以通过多线程和/或使用PLinq来提高性能.
这可能与NHibernate的ICriteria有关吗?它返回的所有内容似乎都是IList,并在关闭集合引用之前完全加载.为什么IList而不是IEnumerable?!
我并不是说NHibernate在加载子对象或父对象时使用的传统意义上的"懒惰".我想要一个懒惰的IEnumerable意味着从ICriteria对象获取IEnumerable.ICriteria只有一个List()方法,它将结果加载到ArrayList中.
我正在iPhone中创建一个应用程序,我有几个UIViews和图层.我正在使用CAKeyframeAnimation类做一些动画,因为动画必须链接,我已经覆盖了UIView中的animationDidStop方法.
我正在得到正确的回调,但是我无法弄清楚如何找到哪个动画结束以便我可以开始下一个动画.只有回调函数的参数是CAAnimation对象和布尔值.
我可以通过在类中设置属性并使用枚举来处理我使用的各种动画来解决此问题.但是我只是想知道回调中是否有任何内置属性,我可以在CAKeyframeAnimation对象中设置它们,然后在回调中引用它.
任何帮助将不胜感激!
我有一些配置数据,我想在代码中建模如下:
Key1, Key2, Key3, Value
null, null, null, 1
1, null, null, 2
9, null, null, 21
1, null, 3, 3
null, 2, 3, 4
1, 2, 3, 5
Run Code Online (Sandbox Code Playgroud)
使用此配置集,然后我需要在bazillion(给予或接受){Key1,Key2,Key3}元组上进行查找以获得"有效"值.使用的有效值基于密钥/优先级总和,在此示例中:
Key1 - Priority 10
Key2 - Priority 7
Key3 - Priority 5
Run Code Online (Sandbox Code Playgroud)
因此,具有Key1 = null,Key2 = match和Key3 = match的配置条目的特定查询击败了一个具有Key1 = match,Key2 = null和Key3 = null,因为Key2 + Key3优先级> Key1优先级...有道理?!
given a key of {1, 2, 3} the value should be 5.
given a key of {3, 2, 3} the value should …Run Code Online (Sandbox Code Playgroud) 我正在使用一个库,它在编写文件时使用Environment.NewLine作为换行符.我需要它来编写Unix格式的文件,因此想要更改换行符.
我可以更改Environment.NewLine的值吗?
任何其他想法(除了转换创建文件后)?
我运行一个网站,我们将某些帐户标记为诈骗者,并"标记"他们的帐户和所有用作坏帐户的信用卡.我们不存储实际的信用卡值,而是存储校验和/ MD5算法.
我们现在一直在碰撞.存储这些值的最佳方法是什么 - 不可逆,但能够对未来值进行比较.
我认为MD5会是最好的,但我们在这里进行辩论......
这个查询:
\n\nselect *\nfrom op.tag\nwhere tag = \'fussball\'\nRun Code Online (Sandbox Code Playgroud)\n\n返回标签列值为“fu\xc3\x9fball”的结果。列“tag”定义为 nvarchar(150)。
\n\n虽然我知道它们在语法上是相似的词,但有人可以解释和捍卫这种行为吗?我认为它与相同的排序规则设置相关,这些设置允许您更改列/表的区分大小写,但谁会想要这种行为?当由于违反约束而存在另一个值时,列上的唯一约束也会导致一个值的插入失败。我该如何关闭此功能?
\n\n后续加分问题。解释一下为什么这个查询不返回任何行:
\n\nselect 1 \nwhere \'fu\xc3\x9fball\' = \'fussball\'\nRun Code Online (Sandbox Code Playgroud)\n\n额外问题(答案?):@ScottCher 私下向我指出,这是由于字符串文字“fussball”被视为 varchar。此查询确实返回结果:
\n\nselect 1 \nwhere \'fu\xc3\x9fball\' = cast(\'fussball\' as nvarchar)\nRun Code Online (Sandbox Code Playgroud)\n\n但话又说回来,这个没有:
\n\nselect 1 \nwhere cast(\'fu\xc3\x9fball\' as varchar) = cast(\'fussball\' as varchar)\nRun Code Online (Sandbox Code Playgroud)\n\n我很困惑。
\n在"使用"块内重新初始化是一个坏主意,在任何时候都要避免.我还是会问这个:
为什么"使用"调用处理原始值而不是最后一个引用或重新初始化(如果使用try finally block则会发生这种情况)
MyClass b = new MyClass();// implements Idisposable
MyClass c = new MyClass();
MyClass a ;
using (a = new MyClass())
{
a = b;
a = c;
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,dispose将在原始引用上调用,而不是在引用时更新.这可以通过在dispose方法中在控制台上打印一些内容来轻松验证.
然而,使用try {} finally代码调用最后一个引用dispose方法.
try
{
a = new MyClass();
a = b;
a = c;
}
finally
{
a.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
MSDN:using语句确保即使在对象上调用方法时发生异常,也会调用Dispose.
using (Font font1 = new Font("Arial", 10.0f))
{
byte charset = font1.GdiCharSet;
}
Run Code Online (Sandbox Code Playgroud)
基本上"使用"转换为:
{
Font font1 = new Font("Arial", 10.0f);
try
{
byte charset …Run Code Online (Sandbox Code Playgroud) 我有一个用户控件,它接受一个Func,然后它给出了IQueryable的Linq"Where"扩展方法.我的想法是,从调用代码,我可以传递所需的搜索功能.
我想动态地构建这个搜索功能:
Func<Order, bool> func == a => true;
if (txtName.Text.Length > 0) {
//add it to the function
func = a => func(a) && a.Name.StartsWith(txtName.Text);
}
if (txtType.Text.Length > 0) {
//add it to the function
func = a => func(a) && a.Type == txtType.Text;
}
..... etc .....
Run Code Online (Sandbox Code Playgroud)
这种方法的问题在于,因为我重用名称"func",所以它创建了一个递归函数.
是否有一种简单的方法来构建像这样的表达式树来创建一个动态的where子句(在没有IQueryable前面并反复调用"Where")的情况下?
c# ×6
.net ×5
.net-3.5 ×1
algorithm ×1
animation ×1
asp.net ×1
collation ×1
credit-card ×1
cryptography ×1
dotnetnuke ×1
file-io ×1
filestream ×1
iphone ×1
lambda ×1
linq ×1
linq-to-sql ×1
md5 ×1
newline ×1
nhibernate ×1
passwords ×1
procmon ×1
sql-server ×1
telerik ×1
unicode ×1
using ×1
webforms ×1