我有一个现有的GridView,其中包含"伙伴名称"字段.它可以按合作伙伴名称排序.
现在我需要更改合作伙伴名称字段,并在某些情况下使其可点击并提醒()某些内容.
现有代码是:
<asp:GridView ID="gridViewAdjustments" runat="server" AutoGenerateColumns="false" AllowSorting="True" OnSorting="gridView_Sorting" OnRowDataBound="OnRowDataBoundAdjustments" EnableViewState="true">
<asp:BoundField DataField="PartnerName" HeaderText="Name" SortExpression="PartnerName"/>
Run Code Online (Sandbox Code Playgroud)
我添加了专栏:
<asp:hyperlinkfield datatextfield="PartnerName" SortExpression="PartnerName" headertext="Name" ItemStyle-CssClass="text2"/>
Run Code Online (Sandbox Code Playgroud)
这使我能够控制CSS和排序.但是,我找不到如何添加客户端javascript函数.
我发现添加:
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<a id="lnk" runat="server">Edit</a>
Run Code Online (Sandbox Code Playgroud)
使我能够通过id访问"lnk"并添加到其属性.但是,我失去了排序能力.
在这种情况下,正确的解决方案是什么?
谢谢.
我在.net 3.5工作.我有一个类"A",它有一个堆栈和一个getter属性,当被调用时,它会删除堆栈中的第一个项目并检索下一个项目.
在初始化类之后,我看到getter在没有被调用的情况下工作,并删除了堆栈中的顶层项,从而给我带来了不好的结果.吸气剂中的断点并未显示任何人通过它.
当我将属性更改为函数时,堆栈返回ok.
如果有人可以解释为什么会这样,我会很高兴.
这是简化的类:
public class A
{
private Stack<string> Urls;
public A(string title, string[] array)
{
Urls = new Stack<string>();
foreach (string s in array)
{
Urls.Push(s);
}
}
public string Url
{
get { return Urls.Peek(); }
}
public string NextUrl
{
get{
if (Urls.Count > 1)
{ Urls.Pop(); }
return Urls.Peek();
};
}
}
Run Code Online (Sandbox Code Playgroud) 如果你可以向我解释为什么shout()不断被调用,我会很高兴,尽管它应该"消失".
var myclass = new Class({
myid: "greatidea",
initialize: function(element) {
var shout = function() { alert(this.myid); };
shout.periodical(5000, this); // test debug
}
Run Code Online (Sandbox Code Playgroud)
});
x = new myclass ();
alert(x);
x=null;
alert(x);
另见http://mootools.net/shell/jhCBz/
基本上,我明白了这个想法:函数有自己的注册,现在独立于调用它的对象.但我很乐意得到一个真正的解释.
谢谢.
我有一个asp:ImageButton,OnClick ="Btn_OnClick".
在Btn_OnClick我有这一行:
DataTable dtTable = (DataTable)Session["someSessionKey"]
Run Code Online (Sandbox Code Playgroud)
和dtTable在功能中被改变.
我注意到如果按钮被多次点击,我从会话中获取的dtTable包含更改的表,可能意味着dtTable不是副本而是会话变量的引用.
如何更改Session ["someSessionKey"]的副本,而不是实际值?
谢谢!
我们有一个非常严重的问题,每分钟造成数千个异常.我们有一个运行本土缓存机制的网站,该机制以下列形式保存数据:
protected static IDictionary<int, IList<IInterfaceForData>> m_Data = null;
Run Code Online (Sandbox Code Playgroud)
当我们在这个字典上调用Add时,我们得到一个非常奇怪的行为:" 索引超出了数组的范围 ",当密钥100%不在字典中时:
m_Data.Add(id, new List<IInterfaceForData>());
Run Code Online (Sandbox Code Playgroud)
我们使用这样的锁来保护这个电话:
if(Monitor.TryEnter(m_LockObj, 1000))
{
try
{
m_Data.Add(id, new List<IInterfaceForData>());
}
catch(Exception ex)
{
// log exception
}
finally
{
Monitor.Exit(m_LockObj);
}
}
Run Code Online (Sandbox Code Playgroud)
我们得到这个例外:
at System.Collections.Generic.Dictionary`2.Resize() at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
Run Code Online (Sandbox Code Playgroud)
我们找不到任何解释,因为异常与Dictionary的线程安全有关,我们(认为我们)是线程安全的.我们在每个Add()和Remove()调用上使用lock()或Monitor.TryEnter,m_Data.TryGetValue(...)除外
任何帮助将不胜感激.
非常感谢.
我有一个包含10列的GridView.在某种情况下,我想添加一个名为"过期日期"的新列.问题是当用户再次按下"搜索"(回发)时,将再次添加该列.
我在添加列之前检查,看它是否已经存在:
BoundField dtExp = new BoundField
{DataField = "DateTimeExpired", HeaderText = "Expiration Date", DataFormatString = "{0:d}"};
if (!grid.Columns.Contains(dtExp)){grid.Columns.Add(dtExp);}
Run Code Online (Sandbox Code Playgroud)
但问题是即使列已经存在,"Contains"也会返回false.
我究竟做错了什么?
谢谢!
我正在运行一个使用以下代码下载RSS提要的Windows服务:
XmlReaderSettings settings = new XmlReaderSettings() { DtdProcessing = DtdProcessing.Ignore };
string feedXml = XDocument.Load(XmlReader.Create(url, settings));
Run Code Online (Sandbox Code Playgroud)
该服务不在IIS下运行,而是作为独立服务运行.
突然之间(我怀疑是基础设施问题)我们开始每10-20分钟接收一次"无法连接到远程服务器".代码本身没有改变,我正在寻找可能的原因.
为了解决这个问题,我将服务移动到另一台机器,但问题仍然存在.
很想得到任何想法.谢谢!
我们在.Net 3.5中工作,我们在代码中有SqlDependency,这要求.Net用户具有CREATE权限和其他权限.
这里的DBA希望避免给.Net用户提供如此巨大的权限.
有没有办法通过手动执行SqlDependency的操作来绕过SqlDependency?运行具有.net之一的更多权限的后台进程并创建必要的程序等?
谢谢!
为了将来参考,我只想说我们通过一个非常简单的解决方案解决了权限问题:SqlDependency使用不同的连接字符串,其用户具有与常规.net连接字符串不同的权限.
我正在尝试寻找一种有效的方法来获取输入字符串,并在每个标点符号(. : ? !)后的空白处加上大写字母。
输入:
“我吃了点东西。但是我没有:相反,不。你怎么看?我不认为!对不起。我。”
输出:
“我吃了点东西。但是我没有:相反,不。你怎么想?我不认为!打扰我了。moi”
显而易见的是将其拆分,然后大写每个组的第一个字符,然后将所有内容连接在一起。但这是丑陋的。最好的方法是什么?(我正在考虑Regex.Replace使用MatchEvaluator首字母大写但希望获得更多想法的a)
谢谢!
c# ×6
.net ×3
c#-3.0 ×2
gridview ×2
.net-3.5 ×1
ado.net ×1
asp.net ×1
connectivity ×1
dictionary ×1
getter ×1
javascript ×1
mootools ×1
regex ×1
sql-server ×1