我有一个unordered list,我正在遍历每个li孩子ul:
<ul>
<li value="1">Item 1</li>
<li value="2">Item 2</li>
<li value="3">Item 3</li>
<li value="4">Item 4</li>
<li value="5">Item 5</li>
<ul>
<script>
$(function(){
$("ul").children("li").each(function(idx, el){
e = $(el); // Assign the element
$.ajax({
type: "POST",
url: "/_ajax/_myService.svc/getRandomNumber",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
e.text(e.text() + " (" + msg.d + ")")
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
因此AJAX函数返回一个随机数(现在)并将其附加到li括号中的文本末尾.
如果我设置ajax调用async: false它是有效的,但不建议由于冻结浏览器等.如果我将其保留为默认,true那么所有项目都附加到循环中的最后一项,所以我最终得到:
<ul>
<li value="1">Item 1</li>
<li value="2">Item 2</li> …Run Code Online (Sandbox Code Playgroud) 使用实体框架,我有一个名为permissions的实体,它有一组bools来指定可以做什么和不可以做什么.
有点像:
public class Permissions
{
public int Id {get;set;}
public int GroupId {get;set;}
public bool ViewRecords {get;set;}
public bool EditRecords {get;set;}
public bool DeleteRecords {get;set;}
public bool CreateRecords {get;set;}
public bool CreateSubGroups {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
你明白了.每个用户组都有其中一个,这一切都很好.
我有一个安全服务类,它根据正确的组和动作验证和检查这些信息 - 再次,一切运作良好 - 但是我留下了一些我想避免的魔术字符串.
例如: public bool HasPermission(int groupId, string action)
我喜欢: public bool HasPermission(int groupId, Permission action)
目前,我正在使用nameof,所以:
bool go = HasPermission(123, nameof(Permission.ViewRecords));
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法映射类属性,所以它将是:
bool go = HasPermission(123, Permission.ViewRecords);
Run Code Online (Sandbox Code Playgroud)
我可以使用枚举,并保持两个镜像彼此镜像,但这是我想要避免的开销 - 虽然名称的工作,事实是该方法可以接收任何字符串,因此可以在以后打破这条线.
好的,奇怪的.我有许多带有转发器的用户控件,转发器的布局在所有控件中都是相同的,并且它们都有一个bindData()公共可用的方法.
我想知道,我可以设置另一个用于分页的usercontrol而不必指定父控件吗?
我能够做到以下几点:
((controls.specificuserControlClass)Parent).bindData();
Run Code Online (Sandbox Code Playgroud)
这一切都很好 - 但是specificuserControlClass如果你明白我的意思,我需要指定进入寻呼机然后需要"每个转发器"吗?
我可以Parent.bindData()盲目地从孩子控制中打电话吗?我"知道"该方法存在(或将构建检查以确保),但是Visual Studio并不满意,因为它不知道该方法.
我有以下代码行:
List<int> _people = code.data.loadScalarDataPoint(code.enums.pathNames.Department, "Department_Staff", RecId).Split('|').Select(int.Parse).ToList();
static方法loadScalarDataPoint返回给定输入的选定列的字符串.
在这个例子中,它返回一个管道分隔整数列表(例如12|45|88|1543|123),如果列是NULL,它将返回一个空字符串.
使用linq Select(int.Parse)工作如果有结果但没有它会抛出以下错误" 输入字符串格式不正确 "
我知道为什么,因为你不能将空字符串解析为a int,但是在单行代码中是否有办法检查这个?
或者我是否需要将结果转换为字符串,检查它是否包含内容,如果是,则解析为ints 列表?
我有一个基于0的索引,它根据计数进行检查.计数通常从1开始.
索引值需要小于或等于计数,所以我采取阻力最小的路线:
if(x < _count) // Do Stuff
Run Code Online (Sandbox Code Playgroud)
或者语义更正确(因为x应该与计数对齐,因此很明显它需要小于或等于):
if((x + 1) <= _count) // Do Stuff
Run Code Online (Sandbox Code Playgroud)
我只是在思考代码维护的进展.