2014-05-21 35 views
0

我绑定复选框字段数据库,并希望显示实际值,如果在数据库中它是1,那么复选框应在gridview中打勾,否则未选中。我试过了,但是我的代码没有显示复选框中的实际值,总是没有选中。绑定复选框与数据库列

CODE:

<asp:GridView ID="GridViewSmsComplaints" AllowPaging="True" runat="server" AutoGenerateColumns="false" CssClass="mGrid" Width="450px" OnPageIndexChanging="GridViewSmsComplaints_PageIndexChanging" > 
       <Columns> 
       <asp:BoundField HeaderText="ID" DataField="ID" /> 
       <asp:BoundField HeaderText="Recieving Date" DataField="RecievingDate" /> 
       <%--<asp:BoundField HeaderText="ToMobileNo" DataField="ToMobileNo" /> --%> 
       <asp:BoundField HeaderText="FromMobileNo" DataField="FromMobileNo" /> 
       <asp:BoundField HeaderText="Message" DataField="Message" /> 
       <asp:TemplateField HeaderText="IsComplaint"> 
       <ItemTemplate> 
        <asp:CheckBox ID="ckboxIsComplaint" OnCheckedChanged="ckboxIsComplaint_CheckedChanged" AutoPostBack="true" runat="server" Value='<%# Eval("IsComplaint") %>' /> 
       </ItemTemplate> 
       </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 

的.cs

SELECT [ID] 
     ,REPLACE(convert(varchar, ReceivedMessages.ReceivedDateTime, 106), ' ','/') as RecievingDate 
     ,[ToMobileNo] 
     ,[FromMobileNo] 
     ,[Message], 
     [IsComplaint] 
     FROM [CmsSMSDb].[dbo].[ReceivedMessages] 
     where Convert(date,ReceivedDateTime)>= @DateFrom AND Convert(date,ReceivedDateTime)<= @DateTo AND IsComplaint=1 
+0

你能在那里你也请张贴代码中的数据绑定,在后面的类代码。谢谢 – Christos

回答

0

如果你将只能得到truefalse,那么你可以使用下面的,通过添加

Checked='<%# Convert.ToBoolean(Eval("IsComplaint").ToString()) %>'CheckBox

<asp:CheckBox ID="ckboxIsComplaint" OnCheckedChanged="ckboxIsComplaint_CheckedChanged" AutoPostBack="true" runat="server" Checked='<%# Convert.ToBoolean(Eval("IsComplaint").ToString()) %>' /> 

如果您收到null值也,那么你需要做的checkingunchecking从C#代码RowDataBound事件。

0

试试这个

<asp:CheckBoxField DataField="IsComplaint" HeaderText="IsComplaint" SortExpression="IsComplaint" /> 

而是采用

<asp:TemplateField HeaderText="IsComplaint"> ............. </asp:TemplateField>