在页面生命周期的一些位置中更新配置文件属性的显示例如每次Fan Club的视图改变时运行如下的代码 Sub FCLoginView_ViewChanged(ByVal sender As Object ByVal e As SystemEventArgs)
DisplayProfileProperties() End Sub 这将调用如下的方法 Private Sub DisplayProfileProperties()
Dim NameBox As TextBox = CType(FCLoginViewFindControl(txtName) TextBox)
If Not (NameBox Is Nothing) Then CType(FCLoginViewFindControl(txtName) TextBox)Text = ProfileName CType(FCLoginViewFindControl(txtAddress) TextBox)Text = ProfileAddress CType(FCLoginViewFindControl(txtCity) TextBox)Text = ProfileCity CType(FCLoginViewFindControl(txtCounty) TextBox)Text = ProfileCounty CType(FCLoginViewFindControl(txtPostCode) TextBox)Text = ProfilePostCode CType(FCLoginViewFindControl(txtCountry) TextBox)Text = ProfileCountry CType(FCLoginViewFindControl(chkMailing) CheckBox)Checked = ProfileMailings CType(FCLoginViewFindControl(txtEmail) TextBox)Text = ProfileEmail CType(FCLoginViewFindControl(txtAlias) TextBox)Text = ProfileMemberName CType(FCLoginViewFindControl(ThemeList) DropDownList)SelectedValue = ProfileTheme End If
End Sub 根据这个工作原理部分前面使用的代码应该稍微更为熟悉检索每个控件的值的复杂语法但这儿有一些附加内容注意存在一个测试用于查看页面的当前可见版本上是否存在txtName文本框 Dim NameBox As TextBox = CType(FCLoginViewFindControl(txtName) TextBox) If Not (NameBox Is Nothing) Then 因此如果txtName框可见(这将是用户是否作为FanClubMember角色的成员登录)则检索配置文件数据如果用户是匿名的或者是其他角色(而不是FanClubMember角色)的成员则配置文件将不会存在为了避免在运行时产生错误不会希望尝试检索不存在的数据因此这种检查是必要的(如果不小心尝试移除这种检查并且作为匿名用户访问该页面则会看到发生混乱) 在继续之前考虑的最后一件事情是在布局代码(或FanClubaspx)中存在一些可能还不熟悉的控件 <table border=> <tr> <td> Name:</td> <td> <asp:TextBox ID=txtName runat=server Columns= /> <asp:RequiredFieldValidator ID=rfv runat=server ControlToValidate=txtName Text=* ErrorMessage=You must enter a value for your name /> </td> </tr> <tr> [] [] [] [] [] [] |