在 asp 中访问标签的文本字段
本文关键字:文本 字段 标签 访问 asp | 更新日期: 2023-09-27 18:32:39
我的网页中有一个asp中继器。我正在制作论坛站点的基础结构,我的问题是,中继器使用ItemDataBound方法从数据库中获取问题的答案。如果附加了文件,则下载按钮和文件名标签可见。我在 ItemDataBound 方法中执行检查。但是当我单击下载按钮时,我想在标签上获取文件名,该文件名属于与该向下按钮相同的中继器。this.label.text 没有帮助
感谢您的回答。
这是我进行检查的 ItemDataBound 方法的一部分。我想在完全相同的中继器上查看 CevapEk 标签的内容,以便生成下载链接。
string s = DataBinder.Eval(e.Item.DataItem, "dosya").ToString();
if (s != "")
{
CevapEk = (Label)e.Item.FindControl("CevapEk");
if (CevapEk != null)
{
CevapEk.Text = DataBinder.Eval(e.Item.DataItem, "dosya").ToString();
CevapEk.Visible = true;
}
Button CevapEkIndir = (Button)e.Item.FindControl("CevapEkIndir");
if (CevapEk != null)
{
CevapEkIndir.Text = "Indir";
CevapEkIndir.Visible = true;
}
HiddenField hdn = (HiddenField)e.Item.FindControl("hdnCevapEk");
}
这是下载事件方法。我需要开头的文件名(字符串 dosya)
protected void CevapEkIndir_Click(object sender, EventArgs e)
{
if (this.CevapEk != null)
{
string dosya = this.CevapEk.Text;
string dosya_path = @"'uploadCevap'";
dosya_path = dosya_path + dosya;
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment; filename=" + dosya);
Response.TransmitFile(Server.MapPath(dosya_path));
Response.End();
}
}
试试这个:
protected void CevapEkIndir_Click(object sender, EventArgs e)
{
Button CevapEkIndir = ((Button)sender);
Control container = CevapEkIndir.NamingContainer;
Label CevapEk = (Label)container.FindControl("CevapEk");
if (CevapEk != null)
{
string dosya = CevapEk.Text;
string dosya_path = @"'uploadCevap'";
dosya_path = dosya_path + dosya;
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment; filename=" + dosya);
Response.TransmitFile(Server.MapPath(dosya_path));
Response.End();
}
}