自定义DetailsView中的CheckBox

发布于 2024-11-04 07:17:22 字数 3357 浏览 2 评论 0原文

我有一个包含 CheckBoxField 的 DetailsView。问题是我希望即使在只读模式和插入模式下该复选框也可以更改,默认情况下必须选中它。我该如何解决这个问题?

我附上一段代码:

   <asp:DetailsView ID="newsDetail" runat="server" DataSourceID="SqlDataSourceNews"
                    AutoGenerateRows="False" DataKeyNames="id">
                    <Fields>
                        <asp:TemplateField FooterText="View at startpage" HeaderText="View" SortExpression="view">
                           <ItemTemplate>
                              <asp:CheckBox runat="server" ID="view" Checked='<%# Eval("view") %>' />
                           </ItemTemplate>
                           <InsertItemTemplate>
                              <asp:CheckBox ID="viewInsert" Checked="true" runat="server" />
                           </InsertItemTemplate>
                           <EditItemTemplate>
                              <asp:CheckBox runat="server" ID="view" Checked='<%# Eval("view") %>' />
                           </EditItemTemplate>
                        </asp:TemplateField>
                        ...
                        <asp:CommandField ShowEditButton="True" ShowInsertButton="True" NewText="New" ButtonType="Button"
                            EditText="Edit" CancelText="Avbryt" DeleteText="Delete" InsertText="Add"
                            SelectText="Select" UpdateText="Uppdatera" />
                    </Fields>
                </asp:DetailsView>

<asp:SqlDataSource ID="SqlDataSourceNews" runat="server" ConnectionString="<%$ ConnectionStrings:newsConnectionString %>"
            DeleteCommand="DELETE FROM [nyheter] WHERE [id] = @id" InsertCommand="INSERT INTO [nyheter] ([view], [headline], [post], [pic], [pic2]) VALUES (@view, @headline, @post, @pic, @pic2)"
            SelectCommand="SELECT [id], [view], [date], [headline], [post], [pic], [pic2] FROM [nyheter] WHERE ([id] = @id)"
            UpdateCommand="UPDATE [nyheter] SET [view] = @view, [headline] = @headline, [post] = @post, [pic] = @pic, [pic2] = @pic2  WHERE [id] = @id">
            <SelectParameters>
                <asp:ControlParameter ControlID="newsList" Name="id" PropertyName="SelectedValue"
                    Type="Int32" />
            </SelectParameters>
            <DeleteParameters>
                <asp:Parameter Name="id" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="view" Type="Boolean" />
                <asp:Parameter Name="headline" Type="String" />
                <asp:Parameter Name="post" Type="String" />
                <asp:Parameter Name="pic" Type="String" />
                <asp:Parameter Name="pic3" Type="String" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="view" Type="Boolean" />
                <asp:Parameter Name="headline" Type="String" />
                <asp:Parameter Name="post" Type="String" />
                <asp:Parameter Name="pic" Type="String" />
                <asp:Parameter Name="pic2" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>

I have a DetailsView that containing a CheckBoxField. The problem is that I want the check box to be changeable even in read only mode and in insert mode, it must be checked by default. How do I resolve this?

I attach a piece of code:

   <asp:DetailsView ID="newsDetail" runat="server" DataSourceID="SqlDataSourceNews"
                    AutoGenerateRows="False" DataKeyNames="id">
                    <Fields>
                        <asp:TemplateField FooterText="View at startpage" HeaderText="View" SortExpression="view">
                           <ItemTemplate>
                              <asp:CheckBox runat="server" ID="view" Checked='<%# Eval("view") %>' />
                           </ItemTemplate>
                           <InsertItemTemplate>
                              <asp:CheckBox ID="viewInsert" Checked="true" runat="server" />
                           </InsertItemTemplate>
                           <EditItemTemplate>
                              <asp:CheckBox runat="server" ID="view" Checked='<%# Eval("view") %>' />
                           </EditItemTemplate>
                        </asp:TemplateField>
                        ...
                        <asp:CommandField ShowEditButton="True" ShowInsertButton="True" NewText="New" ButtonType="Button"
                            EditText="Edit" CancelText="Avbryt" DeleteText="Delete" InsertText="Add"
                            SelectText="Select" UpdateText="Uppdatera" />
                    </Fields>
                </asp:DetailsView>

<asp:SqlDataSource ID="SqlDataSourceNews" runat="server" ConnectionString="<%$ ConnectionStrings:newsConnectionString %>"
            DeleteCommand="DELETE FROM [nyheter] WHERE [id] = @id" InsertCommand="INSERT INTO [nyheter] ([view], [headline], [post], [pic], [pic2]) VALUES (@view, @headline, @post, @pic, @pic2)"
            SelectCommand="SELECT [id], [view], [date], [headline], [post], [pic], [pic2] FROM [nyheter] WHERE ([id] = @id)"
            UpdateCommand="UPDATE [nyheter] SET [view] = @view, [headline] = @headline, [post] = @post, [pic] = @pic, [pic2] = @pic2  WHERE [id] = @id">
            <SelectParameters>
                <asp:ControlParameter ControlID="newsList" Name="id" PropertyName="SelectedValue"
                    Type="Int32" />
            </SelectParameters>
            <DeleteParameters>
                <asp:Parameter Name="id" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="view" Type="Boolean" />
                <asp:Parameter Name="headline" Type="String" />
                <asp:Parameter Name="post" Type="String" />
                <asp:Parameter Name="pic" Type="String" />
                <asp:Parameter Name="pic3" Type="String" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="view" Type="Boolean" />
                <asp:Parameter Name="headline" Type="String" />
                <asp:Parameter Name="post" Type="String" />
                <asp:Parameter Name="pic" Type="String" />
                <asp:Parameter Name="pic2" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜味超标? 2024-11-11 07:17:22

您不能使用 CheckBoxField 执行此操作,您必须为此字段创建自己的模板。

首先,将此字段转换为模板字段,然后您将能够控制将成为复选框的模板。

然后,您将发现这些复选框在插入和编辑模板中启用,而在 ItemTmplate 中禁用。您只需要启用它即可。

代码:

<asp:TemplateField HeaderText="view" SortExpression="view">
    <InsertItemTemplate>
        <asp:CheckBox ID="viewCheckBox" runat="server" Checked='<%# Bind("view") %>' />
    </InsertItemTemplate>
    <ItemTemplate>
        <asp:CheckBox ID="viewCheckBox" runat="server" Checked='<%# Bind("view") %>' 
            Enabled="true" />
    </ItemTemplate>
</asp:TemplateField>

You can not do that with the CheckBoxField, you have to create your own template for this field.

First, convert this field to a template field then you'll be able to control the templates which will be CheckBoxes.

Then, you will find these CheckBoxes enabled in the insert and edit tempaltes and disabled in the ItemTmplate. You just need to enable it.

The code:

<asp:TemplateField HeaderText="view" SortExpression="view">
    <InsertItemTemplate>
        <asp:CheckBox ID="viewCheckBox" runat="server" Checked='<%# Bind("view") %>' />
    </InsertItemTemplate>
    <ItemTemplate>
        <asp:CheckBox ID="viewCheckBox" runat="server" Checked='<%# Bind("view") %>' 
            Enabled="true" />
    </ItemTemplate>
</asp:TemplateField>
浮生未歇 2024-11-11 07:17:22

假设参数和 sql 语句设置正确,将 DataField="yourField" 添加到 Checkbox 行会将复选框的值保存到数据库。

<EditItemTemplate>
  <asp:CheckBox ID="CheckBox1" DataField="yourField" runat="server" checked='<%# Bind("yourField")%>'></asp:CheckBox>
</EditItemTemplate> 

Assuming the parameters and the sql statement are properly set adding DataField="yourField" to the Checkbox line will save the value of the check box to the database.

<EditItemTemplate>
  <asp:CheckBox ID="CheckBox1" DataField="yourField" runat="server" checked='<%# Bind("yourField")%>'></asp:CheckBox>
</EditItemTemplate> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文