2012-11-12 62 views
1

我有一個問題,我找不到答案。 在VS2012中,我創建了一個ASP.NET網站C#ASP.NET Databound字段 - >如何檢查checkboxfield

我有我的會員供應商設置和工作,現在我想做一個管理頁面,管理員可以編輯角色並阻止用戶。從服務器資源管理器中,我將asp_membership表拖到頁面上並創建它自己。

我刪除了一些不相關的列,並且添加了帶有兩個按鈕的項目模板字段。看看代碼第一:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="UserId" DataSourceID="SqlDataSource1" 
    EmptyDataText="There are no data records to display." 
    OnSelectedIndexChanged="GridView1_SelectedIndexChanged" > 
    <Columns> 
     <asp:CommandField ShowDeleteButton="True" /> 
     <asp:TemplateField HeaderText="Block users"> 
      <ItemTemplate> 
       <asp:Button runat="server" ID="btnBlock" CommandName="Block" 
        Text="Block" OnClick="btnBlock_Click" Visible='<%# Convert.ToBoolean(Eval("IsLockedOut").ToString()) %>'/> 
       <asp:Button runat="server" ID="btnDeblock" CommandName="Deblock" 
        Text="Deblock" OnClick="bntDeblock_Click" Visible='<%# Convert.ToBoolean(Eval("IsLockedOut").ToString()) %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="UserId" HeaderText="User id" ReadOnly="True" 
      SortExpression="UserId" /> 
     <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" /> 
     <asp:CheckBoxField DataField="IsApproved" HeaderText="Confirmed" 
      SortExpression="IsApproved" /> 
     <asp:BoundField DataField="CreateDate" HeaderText="Created" 
      SortExpression="CreateDate" /> 
     <asp:BoundField DataField="LastLoginDate" HeaderText="Last login" 
      SortExpression="LastLoginDate" /> 
     <asp:CheckBoxField DataField="IsLockedOut" HeaderText="Locked" 
      SortExpression="IsLockedOut" /> 
     <asp:BoundField DataField="LastLockoutDate" HeaderText="Last lockout" 
      SortExpression="LastLockoutDate" /> 
     <asp:BoundField DataField="FailedPasswordAttemptCount" 
      HeaderText="Failed logins" 
      SortExpression="FailedPasswordAttemptCount" /> 
     <asp:BoundField DataField="Comment" HeaderText="Comments" 
      SortExpression="Comment" /> 
    </Columns> 
</asp:GridView> 

我想提出兩個butons(塊去塊),這應該是可見的,如果CheckBoxField字段「IsLockedOut」被禁用,如果看不到......你明白了吧。

當我加載頁面時,按鈕都消失。我假設錯誤駐留在這裏:<%#Convert.ToBoolean(Eval(「IsLockedOut」)。ToString())%>? 有人可以幫我嗎?

+0

什麼是'IsLockedOut'屬性的數據類型? –

回答

1

您不應該需要.ToString()Convert.ToBoolean(); .NET幾乎可以爲你做到這一點。

Visible='<%# Eval("IsLockedOut") %>' 

你看到了什麼,如果你添加一個<asp:Label />ItemTemplate並綁定Text財產上面?您的IsLockedOut財產是Nullable<Boolean>?如果是這樣,你可以試試這個:

Visible = '<%# Eval("IsLockedOut") ?? true %>' 

或者

Visible = '<%# ((Nullable<bool>)Eval("IsLockedOut")).GetValueOrDefault(true) %>' 
+0

我不能相信那就是答案! 我見過Eval()。ToString()這麼多次,我不知道.net做到了這一點。非常感謝! – DerpyNerd