如何在DetailView中获取字段值

时间:2012-11-01 15:15:48

标签: c# asp.net

我正在尝试访问详细视图中的字段并将其显示在标签中。注意,我已将字段转换为templdate字段。我没有在输出标签中获得任何内容。我在这做错了什么?感谢

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"]; 
        }

1 个答案:

答案 0 :(得分: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的内容时动态更改Label的内容,则需要查看某种类型的JavaScript客户端解决方案。

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