我有这种情况:
Dictionary<Int32, userInfo> users = new Dictionary<Int32, userInfo>();
Run Code Online (Sandbox Code Playgroud)
其中Int32是用户标识,userInfo包含名称和其他详细信息.我想在表单中显示一个名单列表,并允许使用该程序的人双击一个以打开一个窗口(类似于MSN messenger中发生的情况).当双击用户的名字时,我需要知道id,所以我可以这样做
OpenChatWindow(Int32 id, string name);
Run Code Online (Sandbox Code Playgroud)
我真的不知道该怎么做,我正在使用winforms.我想到了ListBox,但又一次,我不确定如何.我该怎么办?
PS.userInfo.name在Dictionary中是唯一的,但我真的不想开始寻找它.
如何检查用户(不是当前登录的用户)是否是某个组的成员?尝试从他不是成员的组中检索用户会导致SPException,因此无法检查null.
那你怎么解决这个问题呢?目前,我考虑在SPGroup.Users.XML字符串中搜索用户名,或者迭代所有组成员并检查登录名.
更新: 我忘了提到我想避免使用异常处理来检查用户的成员资格.
是否可以只进行某种类型转换并直接映射到System.Drawing.Color?我将颜色存储为html/css值.即#ffffff.我不想创建一个实现IUserType的自定义类型,它只是System.Drawing.Color的包装器.
问题
使用MasterPages时,我遇到的一个常见烦恼是master中的脚本标签与消费页面相关.
因此,例如,如果您的消费页面位于应用程序的根目录中,那么您的JavaScript可能会起作用,但是当您将另一个页面放在子文件夹中时,相对路径会中断,并且找不到JavaScript.在这种情况下,没有办法使用我所知道的绝对路径.
最后一次,我决定真正攻击这个并找到一个好的解决方案.
提出的解决方案
我尝试了一种策略,围绕在Page_Load中调用ClientScriptManager.RegisterClientScriptInclude,但似乎没有呈现任何内容(授予,我对相关管道的理解不完整).
我尝试了另一个看起来像这样的东西:
<script language="javascript" src='<%= ResolveClientUrl("~/js/ddnmenu.js") %>' type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
...但是会引发异常:无法修改Controls集合,因为控件包含代码块.
工作(但有点难看)代码
所以,我最终得到的是Head中的Literal控件,我在其中呈现相应的Html:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.SetupLiteralScriptsTag()
End Sub
Private Sub SetupLiteralScriptsTag()
'Build the script tags to import our JavaScript
Dim Builder As New StringBuilder
Builder.AppendLine(String.Format("<script type=""text/javascript"" src=""{0}""""></script>", ResolveClientUrl("~/js/jquery-1.3.2.min.js")))
Builder.AppendLine(String.Format("<script type=""text/javascript"" src=""{0}""""></script>", ResolveClientUrl("~/js/jquery.corners.min.js")))
Builder.AppendLine(String.Format("<script type=""text/javascript"" src=""{0}""""></script>", ResolveClientUrl("~/js/bg.pos.js")))
Builder.AppendLine(String.Format("<script type=""text/javascript"" src=""{0}""""></script>", ResolveClientUrl("~/js/moonstone.js")))
Me.LiteralScriptTags.Text = Builder.ToString
End Sub
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我并没有对它嗤之以鼻,因为对于一个非常普遍的问题来说,似乎有点过多的解决方法.有没有更好的办法?
场景:
我有一个容器对象,它包含一个混合的对象包,所有对象都继承自MyContainedObject类.容器类的使用者无法直接访问包含的对象,但我有兴趣知道它们何时发生更改.
设计决策:
在特定类类型上侦听ChangeEvents的最佳方法是什么?我最初的想法是用泛型做点什么.例如,
private TreeMap<Class, ChangeListener> listeners;
public <T extends MyContainedObject> addChangeListenerForObjectsOfType(Class<T> className, ChangeListener listener)
{
listeners.put(className, listener);
}
Run Code Online (Sandbox Code Playgroud)
当检测到更改时,容器类将遍历列表并仅通知为该类类型注册的侦听器.
其他建议?
谢谢.
我正在使用Powershell来测试COM对象方法调用.由于设计/编码/一切都很差,这个COM对象方法只是在出错时挂起.我的默认本能是控制+ c,但这不起作用.我是否必须杀死Powershell以杀死挂起的COM方法调用?
提前致谢.
这个SQL查询让我感到厌恶.我没有写它,但它是我们服务器问题的一个重要原因.我愿意将它分成多个查询并通过PHP进行一些处理(比如,RAND()).
$sql = "SELECT a.code, a.ad_id, a.position, a.type, a.image, a.url, a.height, a.width
FROM " . AD_TABLE ." a, " . USER_GROUP_TABLE . " g
WHERE (a.max_views >= a.views OR a.max_views = '0')
AND (FIND_IN_SET(" .$forum_id. ", a.show_forums) > 0 OR a.show_all_forums = '1')
AND g.user_id = " . $user->data['user_id'] . "
AND FIND_IN_SET(g.group_id, a.groups)
AND FIND_IN_SET(" . $user->data['user_rank'] . ", a.ranks)
AND a.start_time < " . time() . "
AND a.end_time > " . time() . "
AND (a.clicks <= …Run Code Online (Sandbox Code Playgroud) 是否有任何Visual Studio 2008报告工具可以构建项目中使用的所有类和方法的列表?
好吧,我一直在尝试创建自己的GKSession对象,委托方法在控制台中给我一个错误,我还没有弄清楚如何修复.我想知道是否有人有任何建议或遇到过这个问题?*只是一个注释 - 变量peerStatus在我的代码中的其他地方定义.对等体可以被赋予"kServer"或"kClient"状态.我宁愿将每个定义为GKSessionModeServer或GKSessionModeClient,因为我已经读过,如果对等体在GKSessionModePeer中,则性能时间实际上较慢,因为它必须完成客户端和服务器的工作.
- (GKSession *)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type {
if (peerStatus == kServer) {
GKSession *session = [[GKSession alloc] initWithSessionID:@"Josh_Land" displayName:nil sessionMode:GKSessionModeServer];
return [session autorelease];
}
else {
GKSession *session = [[GKSession alloc] initWithSessionID:@"Josh_Land" displayName:nil sessionMode:GKSessionModeClient];
return [session autorelease];
}
}
Run Code Online (Sandbox Code Playgroud)
整个错误代码是:
收听端口56386 2009-06-30 10:31:41.892 GKTank [17756:20b]***由于未捕获的异常'GKInvalidArgumentException'终止应用程序,原因:'必须提供具有GKSessionModePeer模式的vaild GKSession对象,或者在-peerPickerController:sessionForConnectionType:的实现中创建一个默认的GKSession对象返回'nil'.提供的对象是:发送0个数据包:rush(0个包0个字节):依赖(0个包0个字节):rtry(0个包0个字节):sack(0个包0个字节):当前加权平均值rtt(0 ms)会话模式:0'2009-06-30 10:31:41.893 GKTank [17756:20b] Stack:(807902715,2452446779,807986683,807986522,927035842,927037074,927038407,815223834,927038949,9245,8562,814709201,815110321, 815119058,815114270,814813151,814722763,814748641,839148405,807687520,8068683624,839142449,839142646,814752238)
事实上,这是与这篇文章相同的问题:
如何在我的DAL中调用时确保我的LINQ查询执行,而不是以延迟的方式执行?
但由于他没有解释为什么他想要它,这个问题似乎已经过了一段时间.这是我类似但更好解释的问题:
我有两种类型的线程(暂时忽略UI线程).有一个"数据收集"线程类型和一个"计算"线程类型.数据收集线程很慢.从各个地方筛选出相当多的数据.计算线程相对较快.到目前为止,设计模型是发送数据收集线程以查找数据,并在完成时将数据传递给计算.
当我在Linq编写数据采集时,我将一些缓慢的内容提升回计算线程.现在有数据元素在计算过程中使用之前没有完全解析 - 这是一个问题.
我想迫使Linq在一定时间内完成工作(声明结束?方法结束?"请完成,该死的"方法调用)以便我知道我以后不会付钱.将".ToList()"添加到Linq的末尾是1.尴尬,并且2.感觉就像拳击即将在另一个线程中暂时取消装箱的东西.
c# ×3
asp.net ×1
cocoa-touch ×1
com ×1
gamekit ×1
iphone ×1
java ×1
linq ×1
listbox ×1
master-pages ×1
mysql ×1
nhibernate ×1
objective-c ×1
optimization ×1
php ×1
powershell ×1
sharepoint ×1
sql ×1
usergroups ×1
webforms ×1
winforms ×1