我有一个包含播放列表的ListView.如果用户想要编辑相册,他们会单击编辑链接,并允许他们删除或添加歌曲到播放列表.如果用户想要在保留原始播放列表的同时保存新播放列表,则会单击"另存为"按钮.这是应该发生的事情:
如果用户单击"另存为"并且他们没有更改名称,我想显示一条警告,告诉他们必须更改名称.
如果用户单击"另存为"并且他们已更改名称,我想显示他们确实要保存它的确认.
目前,正在发生的事情是,如果我在我的代码中放入类似下面的内容,脚本将不会注册,直到第二次单击和注册的任何脚本保持注册意味着如果我最终更改名称并且警报脚本已注册之前,它将显示警报而不是确认.这是代码:
if (newname == oldname)
{
btnSaveAs.OnClientClick =
"javascript:alert('Save As requires you to change the name of the playlist. Please
change the name and try again.');";
}
else
{
btnSaveAs.OnClientClick = "javascript:confirm('Are you sure you want to save the
playlist" + newname + "?');";
}
Run Code Online (Sandbox Code Playgroud)
我也尝试添加返回false,因此它不会进行回发,但如果我这样做,那么当我在确认上单击OK时,它实际上并没有做任何事情.
以下查询抱怨不支持int转换.
var list = from d in data
where d.Id == (int)GridView1.DataKeys[0].Value
select d;
Run Code Online (Sandbox Code Playgroud)
它抱怨(int)GridView1.SelectedInex行告诉我不支持Int转换.我也尝试过Convert.ToInt32,但这也不起作用.
这个逻辑是否必须先计算在linq查询之上,或者是否有特殊的方法来执行它,如果没有,为什么它不支持它?
我不想允许空白密码,但如果我将文本框留空,则在输入至少1个字符之前,正则表达式中的text属性不会显示.如何禁止密码为空?我尝试使用+符号而不是*符号,但它仍然无效.
<asp:RegularExpressionValidator
ControlToValidate="txtPassword"
Display="Dynamic"
runat="server"
Text="Invalid"
ValidationExpression="^(?=.*\d{1})(?=.*[a-zA-Z]{2}).{7,}$"
ValidationGroup="UserRegistrationValidation">
</asp:RegularExpressionValidator>
Run Code Online (Sandbox Code Playgroud) 我有一个单元测试,我从距离计算中存储在实际变量中的数字是6.07328028312884,但它仍然说测试失败了.为什么?
double expected = 6.07328028312884;
double actual;
actual = target.Distance((double)latitude, (double)longitude);
actual = actual / 1000;
Assert.AreEqual(expected, actual);
Run Code Online (Sandbox Code Playgroud) 我在vb.net中看到了以下类声明:
Public Class [Interface] Implements TestInterface
Run Code Online (Sandbox Code Playgroud)
以上是什么意思?c#中有等价物吗?
我有4个舍入选项:无,标准,向上,向下
如果他们选择None并且数字是108.7879,我只想显示108.78而没有舍入.我知道我可能会使用Math.Ceil for Up和Math.Floor for Down,但我不知道如何使用None或Standard.
如果他们选择标准:
106.78应该达到107
106.49应该向下舍入到106
如果他们选择Up:
106.49应该达到107
106.52应该达到107
如果他们选择Down:
106.78应该向下舍入到106
106.49应该向下舍入到106
假设我有以下类层次结构:
Person对象包含Customer对象,Customer对象包含Address对象.
我不在乎客户是否有地址,但如果他们这样做,我想将其保存到数据库中.所以在这种情况下,拥有类似的东西是完美的:
try
{
Address addr = person.Customer.Address;
db.SaveAddress(addr);
}
catch
{
//I don't care, but if it is there, just save it.
}
Run Code Online (Sandbox Code Playgroud)
在上面,我不在乎Customer是null还是Address为null.我有另一种选择
if(person.Customer != null)
{
if(person.Customer.Address != null)
{
}
}
Run Code Online (Sandbox Code Playgroud)
如果层次结构很长,上述情况可能会很长.是否有更优雅的方法来检查对象链是否为null而不必检查每个对象.
我有以下查询:
Dim elementsWithPossibleCCNumbers As IEnumerable(Of XElement) =
xmlTree.Descendants().
Where(Function(element) element.Attributes().
Where(Function(attribute) attribute.Value.Length >= 13
AndAlso attribute.Value.Length <=
16).
Where(Function(attribute) Long.TryParse(attribute.Value, numeric)).Count() = 1).
[Select](Function(x) x)
Run Code Online (Sandbox Code Playgroud)
我最初是使用 Regex 搜索属性,但由于社区中的其他一些人告诉我这是更好的选择,我开始使用 LINQ to XML。我唯一担心的是,对于较大的 XML 字符串,LINQ to XML 查询的性能如何,它是否比 Regex 快?
我可以提高查询速度吗?
我知道这可能真的很蠢,但我无法弄清楚为什么这个if语句失败了:
如果我进入1或2在控制台,第一个if语句失败,但如果我首先将结果存储在bool中,则第二个if语句失败.为什么?我可能在这里做一些蠢事?
Console.WriteLine("Enter 1 for AM or 2 for PM?");
string amOrPM = Console.ReadLine();
//Why does this fail if I enter 1 or 2?
if (amOrPM != "1" || amOrPM != "2")
Console.WriteLine("You must enter 1 for AM or 2 for PM. Try again.");
//This works!
bool valid = (amOrPM != "1" || amOrPM != "2");
if (!valid)
Console.WriteLine("You must enter 1 for AM or 2 for PM. Try again.");
Run Code Online (Sandbox Code Playgroud)
我刚注意到第一个if语句,我不得不把&&而不是||,但这很令人困惑,因为我把它读成:如果amOrPm不相等1或amOrPM …
c# ×5
asp.net ×3
regex ×3
vb.net ×2
dom-events ×1
javascript ×1
linq ×1
linq-to-sql ×1
linq-to-xml ×1
unit-testing ×1