【提问】清早问一个动态添加控件的问题

xupeihuagudulei1 2010-01-29 09:01:05
RT

如图
想要实现这样的一个功能。
我后台添加文件,文件数不止一个。
到后台的链接就变成这样的
4912424241686231.doc|4922111582390562.doc|4929549701221963.doc|
每一个文件后面再加一个|符号,就是为了分隔
而现在呢,我前台需要取文件地址
肯定需要string s=string.split("|");
这种方法写,再用foreach循环取
就是现在遇到问题了
看那张图片,
现在的话我等于只放了一个附件的位置可以下载
所以我需要更改一下,
动态的根据
string s 娶出来的文件数再创建"请右健目标另存为下载"这个控件
这是一个超链接控件,
超链接控件放在panel里的
请问这怎么实现?
...全文
170 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
pdsnet 2010-01-29
  • 打赏
  • 举报
回复
楼主好多兄弟...10+
nanfei521 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 xupeihuagudulei 的回复:]
引用 30 楼 nanfei521 的回复:
For Each s As String In "4912424241686231.doc|4922111582390562.doc|4929549701221963.doc".Split("|")
            Dim Lt As New Literal
            Lt.Text = s & " <br/>"
            Panel1.Controls.Add(Lt)
            Dim lnk As New HyperLink
            lnk.Text = "请右击目标另存为"
            lnk.NavigateUrl = s
            Panel1.Controls.Add(lnk)
        Next
难道你让人手把手教你怎么布局啊?
你太激动了
我就是说现在差一个br

[/Quote]

没办法,天生急性子
itliyi 2010-01-29
  • 打赏
  • 举报
回复
十个号 一个头像
itliyi 2010-01-29
  • 打赏
  • 举报
回复
靠 十个头像 十个号
xupeihuagudulei 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 nanfei521 的回复:]
For Each s As String In "4912424241686231.doc|4922111582390562.doc|4929549701221963.doc".Split("|")
            Dim Lt As New Literal
            Lt.Text = s & " <br/>"
            Panel1.Controls.Add(Lt)
            Dim lnk As New HyperLink
            lnk.Text = "请右击目标另存为"
            lnk.NavigateUrl = s
            Panel1.Controls.Add(lnk)
        Next
难道你让人手把手教你怎么布局啊?
[/Quote]你太激动了
我就是说现在差一个br
阿非 2010-01-29
  • 打赏
  • 举报
回复
Literal lit = new Literal();
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= strurl.Length; i++)
{
sb.AppendFormat("<a href='{0}'>请右键目标另存为下载!</a><br>",strurl[i - 1]);
}
lit.Text=sb.ToString();
Panel2.Controls.Add(lit);
nanfei521 2010-01-29
  • 打赏
  • 举报
回复
如果实在不行把相关信息写到一个List里面,然后用repeater布局,再把repeater.datasource=List进行数据绑定,要什么样式都可以啊
nanfei521 2010-01-29
  • 打赏
  • 举报
回复
For Each s As String In "4912424241686231.doc|4922111582390562.doc|4929549701221963.doc".Split("|")
Dim Lt As New Literal
Lt.Text = s & "<br/>"
Panel1.Controls.Add(Lt)
Dim lnk As New HyperLink
lnk.Text = "请右击目标另存为"
lnk.NavigateUrl = s
Panel1.Controls.Add(lnk)
Next
难道你让人手把手教你怎么布局啊?
camperer 2010-01-29
  • 打赏
  • 举报
回复
只有一个链接?你这不叫动态添加控件吧,动态添加控件是controls.add(..)。
不过cs代码中动态添加的服务器端控件,浏览器一刷新就没了。。
我把每次添加的图片写入到datatable,然后用视图状态保存datatable,在每次页面载入时输出(添加到panel或者绑定到数据显示控件,循环输出html也可以)
vyxiang 2010-01-29
  • 打赏
  • 举报
回复
up
xupeihuagudulei 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 sandy945 的回复:]
不用服务器控件,  拼 <a> 就可以的
[/Quote]你那种拼法是不是用js拼?
现在这个是写在后台。。

xupeihuagudulei 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 sandy945 的回复:]
不用服务器控件,  拼 <a> 就可以的
[/Quote] string url = mydatareader2["Filename"].ToString();
string[] strurl = url.Split('|');

for (int i = 1; i <= strurl.Length; i++)
{
HyperLink hyperLink = new HyperLink();
hyperLink.ID = "hyperLink" + i;
hyperLink.Text = "请右键目标另存为下载!";
hyperLink.ForeColor = Color.Red;
hyperLink.NavigateUrl = strurl[i - 1];
Panel2.Controls.Add(hyperLink);

}
我这么写的
非哥。


但是现在样式是这样的。
全部横着放的

请右键目标另存为下载!请右键目标另存为下载!请右键目标另存为下载!请右键目标另存为下载!

怎么在每一个之后再加个<br>

owen_008 2010-01-29
  • 打赏
  • 举报
回复

给楼主顶一个
阿非 2010-01-29
  • 打赏
  • 举报
回复
不用服务器控件, 拼 <a> 就可以的
mzjmicrosoft 2010-01-29
  • 打赏
  • 举报
回复
HyperLink lbDay = new HyperLink();
lbDay.ID = "hl"+Convert.ToString(i+1);
lbDay.Text = arr[i];//这个装数量
lbDay.NavigateUrl = "../UploadFiles/"+lbDay.Text;
TableRow tr = new TableRow();
TableCell tcellDay = new TableCell();
tcellDay.Width = 70;
tcellDay.Controls.Add(lbDay);
tr.Cells.Add(tcellDay);
Table1.Rows.Add(tr);
xupeihuagudulei 2010-01-29
  • 打赏
  • 举报
回复
效果出来了
样式有些不对,
我再看看。
脑子一下没转过弯
刚刚网上看了下例子懂了。
囧~!
nanfei521 2010-01-29
  • 打赏
  • 举报
回复
For Each s As String In "4912424241686231.doc|4922111582390562.doc|4929549701221963.doc".Split("|")
Dim Lt As New Literal
Lt.Text = s
Panel1.Controls.Add(Lt)
Dim lnk As New HyperLink
lnk.Text = "请右击目标另存为"
lnk.NavigateUrl = s
Panel1.Controls.Add(lnk)
Next
jenny0810 2010-01-29
  • 打赏
  • 举报
回复

string[] s=string.split("|");
int num=s.length;
num就是附加数
weifangxiaohuo 2010-01-29
  • 打赏
  • 举报
回复
repeater
阿非 2010-01-29
  • 打赏
  • 举报
回复
加载更多回复(17)

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧