显示大量文本
本文关键字:文本 显示 | 更新日期: 2023-09-27 18:06:40
我希望在页面上显示电子邮件地址列表,然后可以复制,然后粘贴到电子邮件客户端。他们为什么要这样做不关我的事,我只是必须这样做。
我想知道的是什么是最好的方式去显示这个?我不确定我是否应该使用一个大标签或文本框,或者是否有更好的东西。
任何建议都将非常感谢!
感谢编辑:不确定这是否重要,但地址是从数据库中提取的,所以我没有准备好简单地将它们硬编码到页面中。我是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与溢出和高度设置。
列表有多长?根据电子邮件地址列表的大小,你可以做各种各样的事情。对于大多数大小的列表实现一个可滚动的列表视图,对于非常大的列表实现一个可分页的gridview,如果列表非常小则实现一个单一的文本框。
我会把它放在Textarea元素上。这样可以很容易地复制。
我会使用类似ListBox的东西,这样您就可以遍历它们,而无需使用分隔符解析列表。另一种选择是采用Outlook样式,并在文本框中显示地址,并以分号作为分隔符。
以分号分隔格式的一个好处是,MailMessage类接受以分号分隔的收件人列表,因此它将使发送电子邮件的过程更容易一些。
我将使用可滚动列表视图!请看这里的文档:http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.scrollable.aspx