我有以下代码 - jsFiddle上的示例
<select>
<optgroup label="Group1">
<option value="11">Option 1</option>
<option value="12">Option 2</option>
</optgroup>
<optgroup label="Group2">
<option value="21">Option 1</option>
<option value="22">Option 2</option>
</optgroup>
</select>?
Run Code Online (Sandbox Code Playgroud)
和一些 jquery 代码:
$(document).ready(function() {
$("select optgroup").click(function() {
alert("Clicked " + $(this).attr("label"));
});
Run Code Online (Sandbox Code Playgroud)
这看起来很简单。如果我添加onclick="javascript:alert(...);"这似乎有效......除了无论点击什么都会触发点击。
为什么这不起作用?
谢谢你的帮助!
编辑
我在这里尝试做的事情似乎存在误解,所以我需要稍微扩展代码以提供更好的想法。
我的目标是能够做到以下几点:
$(document).ready(function() {
$("select optgroup").children().hide();
$("select optgroup").click(function() {
$(this).children().show();
});
Run Code Online (Sandbox Code Playgroud)
如您所见,在选项上捕获单击事件然后确定组将不起作用,因为选项将全部隐藏。我希望在您单击组 (optgroup) 时显示选项。话虽如此,Chrome 似乎并不尊重对组的点击,而 IE 仅返回所选项目的组(当您单击 optgroup 时)项目。
我定义了以下类:
public class ImageIndexModel {
public string Description {get; set;}
public string InstrumentNumber {get; set;}
}
public class ImageEditModel : ImageIndexModel {
public int TotalCount = 0;
}
public class Clerk { //This is actually a class defined by LinqToSql
public string Description {get; set;}
public string InstrumentNo {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
现在,在我global.asax,我已经定义了以下映射Application_Start().
Mapper.CreateMap<ImageIndexModel, Clerk>()
.ForMember(dest => dest.InstrumentNo,
opt => opt.MapFrom(src => src.InstrumentNumber));
Run Code Online (Sandbox Code Playgroud)
最后,在我的一个控制器中,我有以下代码:
var _existing = new Clerk();
var _default = new ImageEditModel() {
InstrumentNumber = …Run Code Online (Sandbox Code Playgroud) 我有以下域对象:
public class Person
{
public int Id {get; set;}
public int? FatherId {get; set;}
public int? MotherId {get; set;}
public int? HomeChurchId {get; set;}
public int? BirthCountryId {get; set;}
public Parent Father {get; set;}
public Parent Mother {get; set;}
public Church HomeChurch {get; set;}
public Country BirthCountry {get; set;}
}
public class Parent
{
public int Id {get; set;}
...
}
public class Church
{
public int Id {get; set;}
...
}
public class Country
{
public int Id …Run Code Online (Sandbox Code Playgroud) 我需要创建一个连接到IMAP服务器并侦听新邮件的服务(或控制台)应用程序.我目前正在尝试使用MailKit,但我无法从文档中找出如何实现这一目标.
我最接近的是这篇文章.从我所看到的,这篇文章是将连接设置为IDLE模式,偶尔发送NoOP以尝试保持连接活动.我不完全清楚的是如何收到新的邮件通知.
MailKit文档似乎表明有一个Alert事件可用.我试过挂钩,但这似乎没有解决任何问题.
这是我尝试过的:
var cts = new CancellationTokenSource();
testIDLEMailNotification(cts.Token);
...
private static void testIDLEMailNotification(CancellationToken token)
{
using (var client = ClientCreateAndConnect(token))
{
while(!token.IsCancellationRequested)
{
using (var done = new CancellationTokenSource())
{
using (var timer = new System.Timers.Timer(9 * 60 * 1000))
{
timer.Elapsed += (sender, e) => done.Cancel();
timer.AutoReset = false;
timer.Enabled = true;
try
{
client.Idle(done.Token, token);
client.NoOp(token);
}
catch (OperationCanceledException)
{
break;
}
}
}
}
}
}
private static ImapClient ClientCreateAndConnect(CancellationToken token)
{
var …Run Code Online (Sandbox Code Playgroud) 我有以下非常简单的代码:
HTML
<a data-bind="enable: selected()" href="http://www.google.com">Click Me</a>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
function pageViewModel() {
var self = this;
self.selected = ko.observable();
}
$(document).ready(function() {
$("a").button();
ko.applyBindings(new pageViewModel());
});
Run Code Online (Sandbox Code Playgroud)
这适用于IE9但不适用于Chrome(即在IE9中使锚标记看起来像禁用按钮,但在Chrome中,标记看起来像/是启用按钮).我也试过通过以下绑定直接操作css来禁用按钮:
<a data-bind="css: {ui-button-disabled: !selected(), ui-state-disabled: !selected()}">Click Me</a>
Run Code Online (Sandbox Code Playgroud)
但显然,knockoutjs并不喜欢我正在使用的类具有 - 在其中的事实.
所以现在我被卡住了.有没有人对如何使用jqueryui和knockoutjs为这两个浏览器工作有任何想法?
谢谢.
我有一个编辑表单,我希望禁用"保存"按钮,直到对绑定到输入或选择元素的其中一个属性进行编辑.
但是,如果用户将文本编辑回原始值,则表单不应再被视为脏.
例:
我看到这篇文章描述了如何创建dirtyBindingBehavior,但它只将新值与之前的值进行比较 - 在这种情况下,上面的第3行将导致仍然将表单列为Dirty,因为它将比较旧值"测试2"对"测试"的新值.
有关如何实现这一目标的任何想法?
我刚刚在 Okta 注册了一个开发测试帐户,以使用 Okta 的身份验证服务和用户管理来测试 OIDC。
使用他们的管理门户,我创建了第二个名为 Test Group 的组以及默认的 Everyone 组,并将我的单个用户添加到这两个组中。
然后,我添加了一个名为 My SPA 的应用程序,并为该应用程序分配了测试组访问权限。
使用经典 UI,然后我编辑了 OpenID Connect ID Token 部分并将组声明类型设置为Expression并添加groups为声明名称和getFilteredGroups(app.profile.groupwhitelist, "group.name", 40)表达式。
然后我去编辑了授权服务器。我添加了一个名为“组”的声明,其正则表达式为 *。与任何范围、访问令牌一起使用并始终包含。
然后我使用令牌预览选择我的用户并使用隐式授权流程,但没有显示组。
如何让用户的组在 Okta 身份验证服务器的 ID 或访问令牌中显示为声明?
编辑 我所拥有的屏幕截图:
我正在使用Postman来测试.Net Core 2.1 Web API.我从这开始,它工作 - 我能够从Postman发送文件到我的Web API.
Web.API
[HttpPost("uploads")]
public IActionResult FileUpload(IFormFile myfile)
{
...
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
但是,我需要传递一些额外的表单数据和文件.基于我见过的其他帖子,我尝试了以下内容:
[HttpPost("uploads")]
public IActionResult FileUpload(UploadFile data)
{
...
return Ok();
}
public class UploadFile {
public IFormFile myfile {get; set;}
public bool forceOverwrite {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
现在从邮递员发帖导致"输入无效".我已经做了一些搜索,似乎找不到任何已经得到类似工作的人.
更新
我也试过以下几点; 但是,附加值总是假的 - 即使发送为真.
public IActionResult FileUpload(IFormFile myfile, bool forceOverwrite)
Run Code Online (Sandbox Code Playgroud)
更新2
这是我在Postman中添加的内容,以及它在Fiddler中的显示方式.(PS你可以忽略POST中的路由与我的代码中列出的路由不匹配的事实 - 我选择简化命名方面的帖子.
我已经看到了一些有关此问题的线索,但似乎没有一个在我的案例中有所帮助.我正在(使用EF)查询POCO对象,然后尝试通过MVC项目中的Json返回结果.
我的控制器返回一个JsonResult,我控制器的最后两行如下所示:
var results = _context.Churches.Include(c => c.Address).Include(c => c.Address.Country).Where(predicate).ToList();
return Json(results, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)
在调用Json()时的第二行中发生错误.但是,我无法知道导致问题的财产.我在电话会议前查看了结果列表,一切看起来都很好.肯定有null属性,但没有必需属性.
我将在下面包含错误输出(尽管它格式不正确).究竟是什么导致了这个问题似乎并不十分明显 - 我怎样才能找出问题所在?
错误文字
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values.
at System.Data.SqlTypes.SqlDouble.get_Value()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo …Run Code Online (Sandbox Code Playgroud) 我有一个客户端对象,它有一个Fullname我想存储到数据库中的计算值,但不希望/需要它从数据库返回,因为它是从其他字段计算出来的。
public class Client
{
public int Id {get; set;}
public string Firstname {get; set;}
public string Middlename {get; set;}
public string Lastname {get; set;}
public string Fullname => this.FormatName(NameFormats.LastFirst);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我希望它在数据库中,以便报告用户可以使用全名进行打印/列出而无需计算它。但我并不需要它带回我的域模型,因为它总是从计算Firstname和Lastname它已经被从数据库中带来的。
是否可以在具有 EF Core 的实体上定义“仅存储到数据库”属性?
c# ×3
aurelia ×1
automapper ×1
claims ×1
code-first ×1
ef-core-2.1 ×1
imap ×1
jquery ×1
jquery-ui ×1
json ×1
knockout.js ×1
mailkit ×1
okta ×1
sql ×1