小编hig*_*gsy的帖子

创建文本文件并下载

我正在尝试写入内存中的文本文件,然后下载该文件而不将文件保存到硬盘.我正在用它StringWriter来写内容:

StringWriter oStringWriter = new StringWriter();
oStringWriter.Write("This is the content");
Run Code Online (Sandbox Code Playgroud)

我如何下载此文件?

编辑:这是答案的组合,给了我我的解决方案.这里是:

StringWriter oStringWriter = new StringWriter();
oStringWriter.WriteLine("Line 1");
Response.ContentType = "text/plain";

Response.AddHeader("content-disposition", "attachment;filename=" + string.Format("members-{0}.csv",string.Format("{0:ddMMyyyy}",DateTime.Today)));
Response.Clear();

using (StreamWriter writer = new StreamWriter(Response.OutputStream, Encoding.UTF8))
{
    writer.Write(oStringWriter.ToString());
}
Response.End();
Run Code Online (Sandbox Code Playgroud)

c# asp.net file download

27
推荐指数
3
解决办法
6万
查看次数

jQuery document.ready vs pageLoad

我从另一个开发人员那里获得了一个现有的项目,并且我在代码中注意到他们正在三个不同的事件处理程序中执行js代码......

function pageLoad() {
//execute code
}

$(document).ready(function() {
//execute code
});

$(function() {
//execute code
});
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 他们都完全一样吗?或者至少是最后两个?我知道pageLoad是由.NET框架调用的,因此它不依赖于像后两个那样加载的jQuery库 - 这是我的理解 - 无论如何 - 那是正确的吗?

javascript jquery

19
推荐指数
2
解决办法
3万
查看次数

XSLT模板和递归

我是XSLT的新手,在尝试格式化具有递归节点的XML文档时遇到了一些问题.

我的XML代码:

希望我的XML显示:

  • 所有<item>都嵌套着<items>
  • 项可以只有属性或子节点
  • <item>嵌套节点的级别可能非常深
<?xml version="1.0" encoding="utf-8" ?> 
- <items>
  <item groupID="1" name="Home" url="//" /> 
- <item groupID="2" name="Guides" url="/Guides/">
- <items>
- <item groupID="26" name="Online-Poker-Guide" url="/Guides/Online-Poker-Guide/">
- <items>
- <item>
  <id>107</id> 
- <title>
- <![CDATA[ Poker Betting - Online Poker Betting Structures
  ]]> 
  </title>
- <url>
- <![CDATA[ /Guides/Online-Poker-Guide/online-poker-betting-structures
  ]]> 
  </url>
  </item>
- <item>
  <id>114</id> 
- <title>
- <![CDATA[ Beginners&#39; Poker - Poker Hand Ranking
  ]]> 
  </title>
- <url>
- <![CDATA[ /Guides/Online-Poker-Guide/online-poker-hand-ranking
  ]]> …
Run Code Online (Sandbox Code Playgroud)

xslt

16
推荐指数
2
解决办法
3万
查看次数

将值添加到存储在会话中的列表,然后将其用作转发器的数据源

我的页面上有两个中继器.第一个转发器中有一个LinkBut​​ton,带有命令名和命令规范.单击linkbutton时,commandarguement的值应该存储在包含List的Session中.然后我使用Session List的值绑定第二个转发器.

我有两个问题:

1)我在OnInit事件中绑定了第二个转发器.在init事件之后执行第一个转发器中的LinkBut​​ton时执行的事件处理程序 - 因此,当数据绑定发生时,新值尚未添加到会话中.我不能在init事件之后绑定数据,因为第二个转发器中的控件需要使用viewstate(或其他)来维护.

2)在第二个中继器中有两个下拉列表.两者都是在转发器itemdatabound事件中的数据绑定.当第一个DDL更改时,我需要过滤第二个DDL中的值.但这并没有发生.

为了更清楚的例子,我已经从我的应用程序中删除了代码并创建了一个非常简单的aspx页面 - 所有代码都在下面.感谢已经帮助过这个的Bobby.

真的希望有人可以帮忙,因为我难倒!

标记:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Repeater-Viewstate.aspx.cs" Inherits="test_Repeater_Viewstate" ViewStateMode="Enabled" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>Repeater Test</h1>
        <h2>Repeater 1</h2>
        <asp:Repeater runat="server" Visible="true" ID="rptListItems">
            <ItemTemplate>
                Image ID: <asp:Literal ID="ImageID" runat="server" />&nbsp;&nbsp;
                <asp:LinkButton runat="server" CommandName="SelectImage" Text="Add to list" ID="AddToListCommand" />
                <hr />
            </ItemTemplate>
        </asp:Repeater>
        <h2>Repeater 2</h2>
        <asp:Repeater runat="server" Visible="true" ID="rptSelectedItems" ViewStateMode="Enabled">
            <ItemTemplate>
                The value of the item you …
Run Code Online (Sandbox Code Playgroud)

c# asp.net repeater session-state

9
推荐指数
1
解决办法
1910
查看次数

在viewstate中存储List <int>

我有一个aspx页面,其中包含以下内容:

  • 一个转发器,每个转发器都有一个链接按钮
  • 链接按钮具有整数值的命令参数
  • 用户控件

这个想法是当用户点击链接按钮时,commandarguement的值存储在List中.你可能没有问题,但我需要将值存储在usercontrol中的List中,而不是存储在ASPX页面中.列表需要在回发中保留,因此它还需要存储在视图状态中.

所以我在用户控件中创建了一个公共属性,如下所示:

public List<int> ImageString {
    get {
        if (this.ViewState["ImageString"] != null) {
            return (List<int>)(this.ViewState["ImageString"]);
        }
        return new List<int>();
    }
    set { this.ViewState["ImageString"] = value; }
}
Run Code Online (Sandbox Code Playgroud)

然后我希望从我的aspx页面我可以添加一行代码来为列表添加一个值,如下所示:

this.LightBoxControl.ImageString.Add(value);
Run Code Online (Sandbox Code Playgroud)

我得到的问题是该值实际上从未添加到列表中.计数始终为零.

我确定它只是因为我设置了错误的属性,但我不确定如何正确...

任何帮助将不胜感激.

谢谢Al

c# asp.net user-controls properties arraylist

8
推荐指数
1
解决办法
2万
查看次数

什么是最嵌入式浏览器嵌入视频的方法?

我的客户希望在他们的网站上放一些视频.在过去,我总是将视频转换为FLV,并使用LongTail Player之类的东西来播放它.

然而,现在当然很多人使用智能手机,如iPhone不播放闪存文件 - 所以最好的选择是什么?是选择一种格式的情况,还是最好使用闪存,然后为iPhone用户提供下载?我注意到我在iphone上查看过的一些网站,你可以点击视频,然后在YouTubes视频播放器中启动 - 这可能是一个选择吗?

意见将不胜感激.

video video-streaming

7
推荐指数
1
解决办法
5309
查看次数

jQuery在单个元素上验证errorPlacement

感觉之前已经问过这个问题,但似乎没有问题可以解决我的问题,所以请提前道歉.

因为我使用ASP.NET和无法预测我想验证控件的名字,我建立我的JQuery验证规则,如下所示:

jQuery('textarea[id$=MessageTextInput]').rules("add", { required: true, messages: { required: "required"} });
jQuery('input[id$=LinkTextInput]').rules("add", { required: true, messages: { required: "required"} });
jQuery('input[name$=PositionChoiceInput]').rules("add", { required: true, messages: { required: "required"} });
Run Code Online (Sandbox Code Playgroud)

而不是:

$('#aspnetForm').validate({options and rules}); //需要控件名称

问题是,第三个规则是radiobuttonlist,并且错误消息没有放在正确的位置.它是在第一个单选按钮之后直接放置的,而我想在最后一个单选按钮列表之后放置它.

jQuery('textarea[id$=MessageTextInput]').rules("add", { required: true, messages: { required: "required"} });
jQuery('input[id$=LinkTextInput]').rules("add", { required: true, messages: { required: "required"} });
jQuery('input[name$=PositionChoiceInput]').rules("add", { required: true, messages: { required: "required"} });
Run Code Online (Sandbox Code Playgroud)

但是,当我添加errorPlacement选项时,我似乎无法使该方法工作.我也尝试过以下方法:

jQuery('#aspnetForm').validate({ errorPlacement: function (error, element) {
            if (element.hasClass('sfRadioList')) {
                error.insertAfter(element.parent("ul"));
            } 
        }
        });
jQuery('textarea[id$=MessageTextInput]').rules("add", { required: true, …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

7
推荐指数
1
解决办法
1万
查看次数

维护转发器的视图状态

我有一个问题,即转发器的视图状态,即转发器内的控件不维护其视图状态.

我有以下内容:

中继器1:

<asp:Repeater ID="rptImages" runat="server">
<ItemTemplate>
    <asp:LinkButton Text="Add" CommandName="Add" CommandArgument=<%# Eval("ID") %> runat="server" />
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

单击链接按钮时,CommandArgument的值将存储在页面上的隐藏字段中.

回发后,在加载prerender事件处理程序之前,我无法获取隐藏字段的值.所以在我的prerender事件中,我获取隐藏字段的值并将其存储在List属性中,如下所示:

if (!string.IsNullOrEmpty(this.SelectedImageIDsInput.Text)) {
        this.ImageList.Add(this.SelectedImageIDsInput.Text);
    }
Run Code Online (Sandbox Code Playgroud)

List属性如下所示:

public List<string> ImageList {
    get {
        if (this.ViewState["ImageList"] == null) {
            this.ViewState["ImageList"] = new List<string>();
        }
        return (List<string>)(this.ViewState["ImageList"]);
    }
    set { this.ViewState["ImageString"] = value; }
}
Run Code Online (Sandbox Code Playgroud)

一旦我将值存储到我的List属性中,我就绑定了我的第二个转发器(再次在prerender事件中):

this.rptSelectedImages.DataSource = this.LightBoxControl.ImageList;
this.rptSelectedImages.DataBind();
Run Code Online (Sandbox Code Playgroud)

第二个中继器有一个下拉列表和一个文本框.问题是不维护这些子控件的视图状态.我认为这是因为每次回发我重新绑定转发器,因此它被重建.我不知道的是我怎么可能绕过这个?ImageList属性仅在回发时更新,因此我显然必须使用每个回发重新绑定转发器 - 如何才能完成?

任何帮助将不胜感激.

谢谢Al

c# asp.net viewstate repeater asprepeater

7
推荐指数
1
解决办法
1万
查看次数

MVC Razor - 如何向自己提交表单

我第一次使用MVC和Razor,希望这是一个非常简单的问题.我在网站上有两页.第一页(页面A)上有一个非常小的表单,其中包含电子邮件地址的输入.当用户输入他们的电子邮件地址并单击提交时,他们将使用HttpPost发送到页面B,如下所示:

@using (Html.BeginForm("NewsletterSignup","Common", FormMethod.Post))
{
    <p>
        <input type="text" class="text" value="Enter your email address" id="email" name="email" />
        <input type="submit" class="submit" value="Sign Up" />
    </p>
}
Run Code Online (Sandbox Code Playgroud)

在页面B上有一个主要表单,允许用户输入他们的姓名和手机号码.主窗体的控制器如下所示:

//newsletter signup page
public ActionResult NewsletterSignup()
{
    var model = new NewsletterSignupModel();

    return View(model);
}

[HttpPost, ActionName("NewsletterSignup")]
public ActionResult NewsletterSignupSend(NewsletterSignupModel model)
{
    if (ModelState.IsValid)
    {
        //register the user here
    }

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

在主窗体上,我有一个Validationsummary和每个字段的验证.问题是我的控制器声明只能使用HttpPost执行NewsletterSignupSend操作.因为页面A上的表单在用户到达页面B时使用HttpPost,所以验证已经运行 - 即在用户在页面b上提交表单之前.

我知道我在这里错过了一个基本的东西 - 有人能引导我朝着正确的方向前进吗?

在此先感谢Al

更新:要解决此问题,我已完成以下操作.

表格A使用以下方式呈现:

@Html.Action("MiniNewsletterSignup")
Run Code Online (Sandbox Code Playgroud)

表格A有一个控制器方法:

//mini newsletter view
        public ActionResult MiniNewsletterSignup()
        {
            var model = new …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-3

7
推荐指数
2
解决办法
3万
查看次数

ASP.NET浏览器定义文件

任何人都可以推荐一个定期更新的.browser定义文件库吗?我发现了来自http://owenbrady.net/browsercaps/的两个OceanSpiders 和来自http://aspnet.codeplex.com/releases/view/41420的一些定义文件,但我不确定是否定期更新(例如,iPad不包括在内).

在此先感谢Al

asp.net browser-detection

5
推荐指数
1
解决办法
7729
查看次数

一个>强的Css选择器

我有一个简单的Css规则:

strong a:hover {
text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)

这适用于以下HTML:

<strong>
<a href="www.stackoverflow.com">Go to website</a>
</strong>
Run Code Online (Sandbox Code Playgroud)

问题是我正在使用的CMS中的Wysiwyg经常将代码放入如下:

<a href="www.stackoverflow.com"><strong>Go to website</strong></a>
Run Code Online (Sandbox Code Playgroud)

我的css规则然后不起作用.有纯Css解决方案吗?

谢谢Al

css css-selectors css3

4
推荐指数
1
解决办法
1万
查看次数

在C#中读取远程XML

我正在读取远程XML文件,一旦将XML加载到XMLDocument对象中,我需要遍历它并提取应用程序所需的值.我的代码如下:

    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.Load("http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml");

    XmlNamespaceManager nsMan = new XmlNamespaceManager(xmlDocument.NameTable);
    nsMan.AddNamespace("gesmes", "http://www.gesmes.org/xml/2002-08-01");
    nsMan.AddNamespace("", "http://www.ecb.int/vocabulary/2002-08-01/eurofxref");


    XmlNodeList xmlNodeList = xmlDocument.DocumentElement.SelectNodes("/gesmes:Envelope/Cube/Cube/Cube", nsMan);

    HttpContext.Current.Response.Write("The numner of nodes is " + xmlNodeList.Count); //it's always zero
Run Code Online (Sandbox Code Playgroud)

然而,我得到的问题是XmlNodeList总是返回零节点,而如果我在XMLSpy中评估XPath表达式,我得到我需要的节点.

作为参考,XML看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
    <gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
    <Cube time='2011-07-27'>
        <Cube currency='USD' rate='1.4446'/>
        <Cube currency='GBP' rate='0.88310'/>
    </Cube>
</Cube>
</gesmes:Envelope>
Run Code Online (Sandbox Code Playgroud)

我想返回美元和英镑的Cube节点.

你聪明的人有什么想法吗?

谢谢Al

c# xml asp.net

4
推荐指数
1
解决办法
5585
查看次数