0

我正在尝试访问详细视图中的字段并将其显示在标签中。请注意,我已将该字段转换为模板日期字段。我在输出标签中没有得到任何东西。我在这里做错了什么?谢谢

if (this.DetailsView1.DefaultMode == DetailsViewMode.Edit) 
        { 

            { 
                TextBox dv = this.DetailsView1.FindControl("ID") as TextBox; 
                // dv.Text = "RCA Assigned"; 
                Session["MySessionVar"] = dv; 
                OutputLabel.Text = (string)Session["MySessionVar"]; 
            } 
        } 

        else 
        { 
            TextBox dv = this.DetailsView1.FindControl("ID") as TextBox; 
            OutputLabel.Text = (string)Session["MySessionVar"]; 
        }
4

1 回答 1

0

这里有几个问题:

您将整个 TextBox (dv) 存储在 Session 中。然后,您尝试将其转换为字符串。

相反,您应该这样做:

Session["MySessionVar"] = dv.Text;

这意味着一个字符串从一开始就存储在 Session 中(装箱为一个对象,因此当你再次取出它时需要转换回字符串)。但是,您为什么要使用 Session 呢?如果您只是希望 TextBox 的内容出现在 OutputLabel 中,那么这应该可以解决问题:

TextBox dv = this.DetailsView1.FindControl("ID") as TextBox;     
OutputLabel.Text = dv.Text;

但是标签的内容只会在网页每次由 Web 服务器提供服务时才会被填充。如果您希望标签的内容在编辑 TextBox 的内容时动态更改,则需要查看某种 JavaScript 客户端解决方案。

这真的取决于你想在这里实现什么。您能否在问题中提供更多背景细节?

于 2012-11-01T15:19:02.780 回答