我有一个asp:按钮,它位于asp:超链接中.单击firefox中的按钮时,它将转到asp:超链接指定的正确URL,但如果单击Internet Explorer中的按钮,它将保留在同一页面上.我只是使用按钮上的PostBackUrl属性来解决问题,但这里是代码的示例:
<asp:Hyperlink ID="hyp" runat="server" NavigateUrl="Page2.aspx">
<asp:Button ID="btn" runat="server" Text="Submit" /></asp:Hyperlink>
Run Code Online (Sandbox Code Playgroud)
为什么上面的工作在firefox中,而不是IE?
第一次加载页面时,图像不会显示一秒钟(就像它们不可见).页面的结构似乎是分散的.如果你点击刷新,那很好.是否有可以解决此问题的修复程序?
对于以下代码,Linq to XML的等价物是什么:
public List<listing> GetList()
{
List<listing> listings = new List<listing>();
if(File.Exists(this.XmlFilePath))
{
DataSet ds = new DataSet();
ds.ReadXml(this.XmlFilePath);
DataTable dt = ds.Tables["listing"];
for(int row = 0; row < dt.Rows.Count; row++)
{
listing listing = new listing();
listing.A = dt.Rows[row]["A"].ToString();
listing.B = dt.Rows[row]["B"].ToString();
listing.C = dt.Rows[row]["C"].ToString();
listing.D= dt.Rows[row]["D"].ToString();
listing.E = dt.Rows[row]["E"].ToString();
listings.Add(listing);
}
}
return listings;
}
Run Code Online (Sandbox Code Playgroud) 除了解释之外,javascript中的$是什么意思?这是代码:
var ZebraTable = {
bgcolor: '',
classname: '',
stripe: function(el) {
if (!$(el)) return;
var rows = $(el).getElementsByTagName('tr');
for (var i=1,len=rows.length;i<len;i++) {
if (i % 2 == 0) rows[i].className = 'alt';
Event.add(rows[i],'mouseover',function() {
ZebraTable.mouseover(this); });
Event.add(rows[i],'mouseout',function() { ZebraTable.mouseout(this); });
}
},
mouseover: function(row) {
this.bgcolor = row.style.backgroundColor;
this.classname = row.className;
addClassName(row,'over');
},
mouseout: function(row) {
removeClassName(row,'over');
addClassName(row,this.classname);
row.style.backgroundColor = this.bgcolor;
}
}
window.onload = function() {
ZebraTable.stripe('mytable');
}
Run Code Online (Sandbox Code Playgroud)
这是我获取代码的链接,您可以在页面上查看演示.它似乎没有使用任何框架.我实际上正在阅读一个JQuery教程,该教程使用了这段代码并在其上使用JQuery来进行表格条带化.链接在这里:
http://v3.thewatchmakerproject.com/journal/309/stripe-your-tables-the-oo-way
我问了一个问题,其中一个响应包含以下LINQ代码:
var selected = lstAvailableColors.Cast<ListItem>().Where(i => i.Selected).ToList();
selected.ForEach( x => { lstSelectedColors.Items.Add(x); });
selected.ForEach( x => { lstAvailableColors.Items.Remove(x);});
Run Code Online (Sandbox Code Playgroud)
有人可以解释上面的LINQ总新手吗?
我有一张显示一些信息的地图.默认情况下,地图上的标签已关闭.有一个图像按钮,当标签关闭时,该图像按钮具有与其关联的关闭图像,当您打开标签时,该图像按钮具有与其关联的打开图像.我有代码工作,但我想要一个更好的理由,为什么它以这种方式工作.这是一段代码.
如果我声明一个类级别的布尔变量showLabels,如:
private bool showLabels = false;
Run Code Online (Sandbox Code Playgroud)
然后有以下代码:
if(showLabels == false)
{
showLabels = true;
imgShowLabels.ImageUrl = "label-on.png";
}
else
{
showLabels = false;
imgShowLabels.ImageUrl = "label-off.png";
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,地图会出现默认情况下未显示的标签.当我单击Show Labels按钮时,变量showLabels变为true并且图像变为label-on.png,但是当我再次单击它时,showLabels变量将重置为false,因此没有任何反应.
所以我做的是改变它:
private bool showLabels = false;
Run Code Online (Sandbox Code Playgroud)
至
private static bool showLabels = false;
Run Code Online (Sandbox Code Playgroud)
它正在以这种方式工作.
这是处理这种情况的正确方法吗?
在类级别,我把属性:
public bool ShowLabels
{
get { return (bool)ViewState["ShowLabels"]; }
set { ViewState["ShowLabels"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
在if(!Page.IsPostBack)中,我将ShowLabels设置为false;
然后在我的if语句中,我正在做:
if(ShowLabels == false)
{
ShowLabels = true;
imgShowLabels.ImageUrl = "label-on.png";
}
else
{
ShowLabels = false; …Run Code Online (Sandbox Code Playgroud) 我正在创建一个简单的博客应用程序,到目前为止,我有3个表,帖子,评论和作者.
我将列出每个表的主键以及外键.
帖子将包含postid作为主键.
评论将包含commentid作为主键并将postid作为外键.
帖子与评论有0到多的关系.
作者将包含authorid作为主键.
作者将与帖子建立多对多的关系,并与评论建立多对多的关系.
最后一个陈述是我遇到的最麻烦的地方.作者实际上是否与帖子和评论存在多对多的关系,或者它是一对一的.如果它是多对多的,我听说有一个中间表描述帖子 - 作者和评论 - 作者之间的关系是一个好主意,但我不确定我会在这个表中使用哪些键?
如果我口头表达它作为一个作者可以写很多帖子,很多帖子都可以由一位作者写,我把它看作一对多,但是如果我从表中存储的实际数据中查看它会包含多个帖子帖子和作者将包含多个作者,然后它似乎是多对多的,因此这是交叉引用表的用途,用于删除重复项.
在将其分配给委托类型时,我不能在我的方法名称后面添加括号的原因是什么.
这是代码:
public delegate Simple Simple(); //Create a delegate that returns its own type.
class Program
{
public class Exercise
{
public static Simple Welcome()
{
Console.WriteLine("Welcome!");
return null;
}
}
static void Main(string[] args)
{
Simple msg;
msg = Exercise.Welcome(); //Since Welcome returns Simple, I can execute it.
msg();
Console.Read();
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下linq查询:
var files = (from d in new DirectoryInfo(@"c:\program files").GetDirectories()
where d.GetFiles().Count() > 10
where d.GetFiles().Count() < 100
select d
);
Run Code Online (Sandbox Code Playgroud)
但是,正如你在上面看到的那样,我调用d.GetFiles().Count()两次,这就是=>运算符的概念派上用场了.
使用jdehaan的语法,为什么我不能直接这样做:
var files = (from d in new DirectoryInfo(@"c:\program files").GetDirectories()
where(x => x.GetFiles().Count() > 10) &&
(x.GetFiles().Count() < 100))
select d
);
Run Code Online (Sandbox Code Playgroud)
我知道上面是愚蠢的,因为我可以用d.GetFiles().Count()来做我的原始查询,但我很好奇使用Where而不是关键字where之间的区别.
我正在使用Session变量将数据表从1页传递到另一页.有时,数据表可以包含超过100,000条记录.运行几次之后,我会抛出Out of Memory异常,所以我想我有几个问题?
Session是最好的处理方式吗?
Session.Clear("session")是否从Memory中释放它?如果没有,是否有任何东西从内存释放会话?
如果我将一个数据表存储到一个Session对象中,然后我将另一个数据表存储到同一个Session对象中,它是继续使用内存还是将其写入现有的Session对象?
c# ×7
asp.net ×4
.net ×2
linq ×2
css ×1
delegates ×1
html ×1
javascript ×1
jquery ×1
linq-to-xml ×1
session ×1
sql-server ×1