我试图以这种方式保存一个简单的应用程序设置("LanguagePairId"):
if (rdbtnEnglishPersian.IsChecked == true) // because "IsChecked" is a nullable bool, the "== true" is necessary
{
langPairId = 1;
}
else if (rdbtnEnglishGerman.IsChecked == true)
{
langPairId = 2;
}
else if (rdbtnEnglishSpanish.IsChecked == true)
{
langPairId = 3;
}
else if (rdbtnGermanSpanish.IsChecked == true)
{
langPairId = 4;
}
else if (rdbtnGermanPersian.IsChecked == true)
{
langPairId = 5;
}
else if (rdbtnSpanishPersian.IsChecked == true)
{
langPairId = 6;
}
AppSettings.Default.LanguagePairId = langPairId;
Run Code Online (Sandbox Code Playgroud)
LanguagePairId被分配了预期值(如果选中rdbtnEnglishSpanish,则分配3,等等)
但是尝试在应用启动时阅读应用设置值:
int langPairId;
public …Run Code Online (Sandbox Code Playgroud) 我试图通过给它们一个特定的标签值来检查表单上的所有必需值是否有条目:
//HHSConsts.cs
public static int REQUIRED_FIELD = 1;
// FrmDelivery
public FrmDelivery(NewDelivery newDel)
{
InitializeComponent();
. . .
SetRequiredControls();
}
private void SetRequiredControls()
{
// Required controls will have a Tag value of "1"
textBoxCost.Tag = HHSConsts.REQUIRED_FIELD;
. . .
Run Code Online (Sandbox Code Playgroud)
然后,当用户对"保存"按钮进行控制时,将执行完整性检查:
private void buttonSave_Click(object sender, EventArgs args)
{
if (RequiredDataMissing())
{
. . .
private bool RequiredDataMissing()
{
return this.Controls.Cast<Control>().Any(ctrl => (ctrl.Tag.Equals(HHSConsts.REQUIRED_FIELD)) && (ctrl.Text.Equals(String.Empty)));
}
Run Code Online (Sandbox Code Playgroud)
根据我的说法,这就是说,"如果任何控件的标签为1(需要)但是为空,则返回false." 但是,它没有这样做(不过是返回一个bool val),而是与NRE崩溃.进一步来说:
//来自应用程序范围的异常处理程序:System.NullReferenceException:HHS.FrmDelivery.b__0(Control ctrl)中的NullReferenceException,位于HHS.FrmDelivery.RequiredDataMissing()的System.Linq.Enumerable.Any [TSource](IEnumerable 1 source, Func2谓词) .FrmDelivery.buttonSave_Click(Object sender,EventArgs args)...
为什么会这样; 我必须取消我的花哨裤子RequiredDataMissing()代码以使其按需工作吗?
我有一个表单,其中包含以下类型的控件(仅):
Button
ComboBox
Label
TextBox
Run Code Online (Sandbox Code Playgroud)
我有一个"清除"按钮,调用此方法:
private void ClearControls()
{
foreach (TextBox txtbx in this.Controls)
{
if (txtbx != null)
{
txtbx.Text = string.Empty;
}
}
foreach (ComboBox cmbx in this.Controls)
{
if (cmbx != null)
{
cmbx.SelectedIndex = -1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
...但是当我调用它时,应用程序挂起,日志文件显示该方法的"无效转换".怎么会这样?它应该处理TextBoxes和ComboBoxes,并忽略其余的 - 无效的演员阵容在哪里?
我正在尝试使用下面的GetInventoryRecordForUPC()方法从表中检索行。我可以通过输入检索LINQPad排精“ SELECT invName,line_id,ref_no,upc_code,说明,部门,VENDOR_ID,upc_pack_size,pack_size,ID,UNIT_COST,unit_list,unit_qty,NEW_ITEM从库存WHERE upc_code = '76145513' ”(中在我的测试方案中,“ upc”中传递的值是“ 76145513”)。
但是,当以下方法运行时,应用程序崩溃,并且日志文件包含:
System.InvalidOperationException: No current row
at System.Data.SQLite.SQLiteDataReader.CheckValidRow()
at System.Data.SQLite.SQLiteDataReader.VerifyType(Int32 i, DbType typ)
at System.Data.SQLite.SQLiteDataReader.GetString(Int32 i)
at HHS.TestHHSDBUtils.GetInventoryRecordForUPC(String upc)
Run Code Online (Sandbox Code Playgroud)
该方法将表的create语句注释掉,以显示列的名称和数据类型。
public Inventory GetInventoryRecordForUPC(String upc)
{
ExceptionLoggingService.Instance.WriteLog("Reached
TestHHSDBUtils.GetInventoryRecordForUPC");
Inventory inv = new Inventory();
using (SQLiteConnection conn = new
SQLiteConnection(HHSUtils.GetDBConnection()))
{
conn.Open();
const string qry = "SELECT invName, line_id, ref_no, upc_code,
description, department, vendor_id, upc_pack_size, pack_size, id, unit_cost,
unit_list, unit_qty, new_item FROM Inventory WHERE upc_code = @UPCCode";
//CREATE TABLE Inventory(invName TEXT, line_id …Run Code Online (Sandbox Code Playgroud) 当我JSLint这段代码时:
$(document).keydown(function(e){
if ($("#chaptersFunctionality").length !== 0) {
if (e.keyCode == '13')
return false;
if ($("#kelvin").val() === "" && $("#caleb").attr("title") === "Show all steps") {
switch(e.which){
case 39: if ((parseInt(currentAnchor)+1) < parseInt(maxi))
expandMe(++currentAnchor);
break;
case 37: if (currentAnchor > 0)
expandMe(currentAnchor-1);
break;
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
...我得到了很多警告,其中大部分都是我嘲笑的,但这个让我难过:" 匿名函数并不总是返回值 "
为什么这么说呢?事件处理程序不是匿名函数,是吗?并且它无论如何都没有返回任何价值,是吗?那么这意味着什么,以及[moll,pac]如果是什么呢?
我将存储在磁盘上的一些 HTML 动态加载到 div 中,如下所示:
$('#FictionContent').load('Content/HuckFinn.html');
Run Code Online (Sandbox Code Playgroud)
给出一些背景:
$(document).ready(function () {
$('#tabs').tabs({
beforeActivate: function(event, ui) {
if (ui.newTab.index() == 0) { // index 0 is fiction
$('#body').removeClass('bronzeBackground silverBackground goldBackground').addClass
('bronzeBackground');
$('#FictionContent').load('Content/HuckFinn.html');
Run Code Online (Sandbox Code Playgroud)
FictionContent 定义如下:
<div id="FictionContent" class="clearfix">Content in Fiction tab</div>
Run Code Online (Sandbox Code Playgroud)
这是有一些背景的:
<div id="tabs" class="content-wrapper">
<ul>
<li><a href="#tab-Fiction">Fiction</a></li>
<li><a href="#tab-Nonfiction">Nonfiction</a></li>
<li><a href="#tab-MiscTwain">Miscellaneous</a></li>
</ul>
<div id="tab-Fiction">
<select id="fictionDropDown">
<option value="HuckFinn">Huck Finn</option>
<option value="TomSawyer">Tom Sawyer</option>
<option value="tPatP">Prince and the Pauper</option>
<option value="ConnYank">Connecticut Yankee</option>
<option value="Gilded">The Gilded Age</option>
<option value="Puddnhead">Pudd'nhead Wilson</option>
<option value="ShortStories">Short Stories</option>
</select>
<div …Run Code Online (Sandbox Code Playgroud) 我想通过jQuery更改标签的内容.我有这个代码:
<input type="checkbox" id="ckbxEmp" >Employee?
<label id="lblSSNOrITIN">Bla</label>
Run Code Online (Sandbox Code Playgroud)
$(document).on("change", '[id$=ckbxEmp]', function () {
var ckd = this.checked;
var $lbl = $('[id$=lblSSNOrITIN]');
$lbl.prop("content", ckd ? "SSN" : "ITIN");
});
Run Code Online (Sandbox Code Playgroud)
......可以在这里摆弄
Label没有"text"CSS属性(我在这里检查过)并尝试过,所以我认为"内容"是要走的路 - 但这似乎也不起作用.我希望"Bla"在选中复选框时更改为"SSN",并在取消选中时更改为"ITIN",但无论在检查/取消选中复选框时我对鼠标应用了多少PSI,它都会保持"Bla" .我甚至想过用锤子敲打它,但是......这不是我的老鼠.
我有这段代码旨在将空十进制值转换为“零”值:
decimal paymentTot = TryConvertToDecimal(boxPaymentAmount.Text);
if ((null == paymentTot) || (paymentTot < 0))
{
paymentTot = 0M; // or simply 0?
}
private decimal TryConvertToDecimal(String incoming)
{
decimal result = 0.0M;
try
{
result = Convert.ToDecimal(incoming);
}
catch
{
; // nada
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
它可以编译,但我收到此警告:“表达式的结果始终为“假”,因为“十进制”类型的值永远不等于“十进制”类型的“空”?”
我不明白它想告诉我什么。我需要什么样的测试来安抚警告发射器,更重要的是,确保我的代码在意图时可以等同于“true”?
我在C#中创建了这样的html输入文本元素:
boxIndex1 = new TextBox()
{
CssClass = "dplatypus-webform-field-input indexcell",
Width = TEXTBOX_WIDTH,
ID = "boxIndex1foapalrow2"
};
Run Code Online (Sandbox Code Playgroud)
...以及此jQuery响应“ boxIndex1foapalrow2”及其表亲(“ boxIndex2foapalrow3”,“ boxIndex3foapalrow4”等)的模糊事件:
$(document).on("blur", '.indexcell', function (e) {
var $currentindexcell = $(this);
if ($currentindexcell == $('[id$=boxIndex1foapalrow2]')) {
alert('index cell 1 exited'); // testing
}
});
Run Code Online (Sandbox Code Playgroud)
我逐步完成了它,当我从“ boxIndex1foapalrow2”中跳出时分配给$ currentindexcell的元素似乎是我所期望的:
<input name="ctl00$ctl24$g_5f3fedca_19f7_4bc3_b84e_efbef0c48a33$ctl00$boxIndex1foapalrow2" type="text" id="ctl00_ctl24_g_5f3fedca_19f7_4bc3_b84e_efbef0c48a33_ctl00_boxIndex1foapalrow2" class="dplatypus-webform-field-input indexcell" style="width:88px;">
Run Code Online (Sandbox Code Playgroud)
...但警报未显示/如果条件等于假。为什么?在我看来$currentindexcell,这种情况下的值确实相等$('[id$=boxIndex1foapalrow2]'),但是为什么对Javascript执行引擎却不这样呢?
这似乎是“Catch-22”的情况。
我已将“付款”类分配给了几个输入元素,如下所示:
<input class="payments" type="number" step="0.01" min="0" id="airfare" />
Run Code Online (Sandbox Code Playgroud)
我正在响应这些元素的更改事件:
Template.templatizer.events({
'change .payments' : function(event){
var paymentTot = $('#paymenttotal').val();
paymentTot = paymentTot + $(this).val();
$('#paymenttotal').val(paymentTot);
}
});
Run Code Online (Sandbox Code Playgroud)
...但使用上面的代码,在将一个值输入到“付款”类的元素之一并模糊/退出后,我得到,“未捕获的类型错误:无法读取未定义的属性 'toLowerCase'。 ”,显然是因为我需要在lenybernard的回答指出的“.TARGET”追加的元素在这里。
但是这样做之后,将代码更改为:
paymentTot = paymentTot + $(this.target).val();
Run Code Online (Sandbox Code Playgroud)
...虽然这确实解决了“无法读取未定义的属性 'toLowerCase' ”问题,但在此行运行后,我得到“未定义”作为 paymentTot 的值(在此之前为“”):
paymentTot = paymentTot + $(this.target).val();
Run Code Online (Sandbox Code Playgroud)
如何避免“无法读取未定义的属性 'toLowerCase'”并从调用该事件的元素中获取值?
c# ×6
jquery ×5
html ×3
.net ×1
any ×1
appsettings ×1
blur ×1
casting ×1
combobox ×1
css ×1
decimal ×1
eventhandler ×1
javascript ×1
jslint ×1
label ×1
lambda ×1
linq ×1
meteor ×1
null ×1
predicate ×1
runtime-type ×1
sqlite ×1
textbox ×1
webmatrix-3 ×1
windows-ce ×1
wpf ×1