[英]Displaying a Large amount of text
我希望在页面上显示电子邮件地址列表,然后可以将其复制并粘贴到电子邮件客户端中。 他们为什么想要这样做不是我的担心,我只需要这样做。
我想知道的是显示此内容的最佳方法是什么? 我不确定是否应该使用巨型标签或文本框,或者是否还有更好的选择。
任何建议,将不胜感激!
谢谢
编辑:不确定这是否重要,但是地址是从数据库中提取的,所以我没有准备好将其简单地硬编码到页面中。 我是ASP.NET内容和Web开发的新手,所以请耐心等待。
我测试了这个(超级简单)标记,并将其复制/粘贴到Outlook 2010和Gmail中。
<div>
user@domain.com<br />
user@domain.com<br />
user@domain.com<br />
user@domain.com<br />
user@domain.com<br />
user@domain.com<br />
</div>
编辑:紧凑或易于选择/复制是一项要求吗? 如果是这样,请指定您希望/需要的内容,以便提供适当的示例。
编辑2:根据您指定的地址列表大小,我认为此标记模式最适合作为HTML解决方案。
E-mail Address Copy Instructions
<ol>
<li>Click inside the box below</li>
<li>Press Ctrl-A to select all addresses</li>
<li>Press Ctrl-C to copy all selected text</li>
</ol>
<textarea style="height: 150px;">user@domain.com
user@domain.com
user@domain.com
user@domain.com
user@domain.com
user@domain.com
user@domain.com
user@domain.com
</textarea>
编辑3:
假设您有一个List(Of String)
,这是一个示例。
标记:
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="150">
代码:(如果我的C#不完美,请原谅,我通常在VB中进行编码)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<String> liAddresses = new List<String>();
//Define list of addresses for demonstration purposes
//Replace with fetch from DB
for (int i = 1; i <= 50; i++)
{
liAddresses.Add(i.ToString() + "user@domain.com");
}
//Load TextBox with list of addresses, will render as <textarea>
foreach (String strAddress in liAddresses)
{
TextBox1.Text += strAddress + "\r\n";
}
}
}
多行文本? 可能还需要一些JavaScript才能在点击框中选择所有文本。
负责任地编码的一部分是引导您的用户远离投掷自己的脚。
话虽如此,我可能会使用文字,字符串生成器和<br />
单独的条目输出数据,并且正如Marc建议的那样,将所有内容包装在div中,并设置溢出和高度。
清单多长时间? 根据电子邮件地址列表的大小,您可以执行多种操作-即。 实现适用于大多数尺寸的可滚动列表视图,适用于非常大的列表的分页网格视图,或者如果您的列表非常小则可使用单个文本框。
我将其放在Textarea元素上。 这样可以很容易地复制。
我会使用类似ListBox的东西,因此您可以遍历它们而无需使用定界符来解析列表。 另一种选择是使用Outlook样式,并在以分号为分号的文本框中显示地址。
以分号分隔的格式的一个好处是MailMessage类接受用分号分隔的收件人列表,因此它将使发送电子邮件的过程变得更加轻松。
我会使用可滚动的列表视图! 在此处查看文档: http : //msdn.microsoft.com/zh-cn/library/system.windows.forms.listview.scrollable.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.