asp.net Datagrid中的清单 [英] checkboxlist in asp.net Datagrid

查看:55
本文介绍了asp.net Datagrid中的清单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨 全部

我在asp.net中没有datagrid而不是gridview,其中有列之一是复选框列.我需要复选框的行为类似于单选按钮,我的意思是我只能在datagrid行中选中一个复选框.谁能帮我.

有人推荐我使用清单框.

请帮帮我.



预先感谢.

Hi All

I have datagrid not gridview in asp.net, which has columns one of them is check box column. I need check box behave like radio button i mean i could check only single check box in datagrid rows. Can anybody help me.

some body recommend me to use checkboxlist.

please help me.



Thanks in advance.

推荐答案

private void Page_Load(object sender, System.EventArgs e)
{
    cnnDB = new SqlConnection("server=HOME;user id=sa;password=;database=Contacts");
    if (!IsPostBack)
        bindGrid();
}
private void bindGrid()
{
    SqlDataAdapter da = new SqlDataAdapter("select * from Anz_Contacts",cnnDB);
    DataSet ds = new DataSet();
    da.Fill(ds, "Employees");
    myDataGrid.DataSource=ds.Tables["Employees"].DefaultView;
    myDataGrid.DataBind();
}







<form id="Form1" name="Form1" method="post" runat="server">
<ASP:DATAGRID id="myDataGrid"

runat="server"

AutoGenerateColumns="false"

HeaderStyle-BackColor="#aaaadd"

Font-Size="8pt"

Font-Name="Verdana"

CellSpacing="0"

CellPadding="3"

ShowFooter="true"

BorderColor="Black"

BackColor="AntiqueWhite"

Width="600">
       <HeaderStyle BackColor="NavajoWhite"></HeaderStyle>
       <FooterStyle BackColor="NavajoWhite"></FooterStyle>
       <Columns>
              <asp:TemplateColumn HeaderText="contract">
                     <HeaderTemplate>
       <input type="checkbox" id="checkAll"

 onclick="CheckAll(this);" runat="server" name="checkAll">
                     </HeaderTemplate>
                     <ItemTemplate>
                           <input type="checkbox" runat="server" id="EmpId"

 onclick="CheckChanged();" checked='false' name="EmpId" />
                     </ItemTemplate>
                           </asp:TemplateColumn>
              <asp:TemplateColumn HeaderText="Id">
                     <ItemTemplate>
                           <asp:Label id="Id" Text='<%#
DataBinder.Eval(Container.DataItem, "Id") %>' runat="server" />
                     </ItemTemplate>
              </asp:TemplateColumn>
              <asp:BoundColumn DataField="FirstName"

       HeaderText="FirstName"></asp:BoundColumn>
              <asp:BoundColumn DataField="LastName"

HeaderText="LastName"></asp:BoundColumn>
              <asp:BoundColumn DataField="Designation"

HeaderText="Designation"></asp:BoundColumn>
       </Columns>
</ASP:DATAGRID>
</form >





在SQL中创建表的脚本如下:





Script to create table in SQL is as :

CREATE TABLE [dbo].[Anz_Contacts] (
       [Id] [int] IDENTITY (1, 1) NOT NULL ,
       [FirstName] [char] (10)  NULL ,
       [LastName] [char] (10)  NULL ,
       [Designation] [varchar] (50)  NULL       
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Anz_Contacts] WITH NOCHECK ADD 
       CONSTRAINT [PK_Anz_Contacts] PRIMARY KEY  CLUSTERED 
       (
              [Id]
       )  ON [PRIMARY] 
GO


尝试使用此js函数
Try this js function
function CheckOne(obj)
    {
        var dtgrid = obj.parentNode.parentNode.parentNode;
        var inputs = dtgrid.getElementsByTagName("input");
        for(var i=0;i<inputs.length;i++)
        {
            if (inputs[i].type =="checkbox")
            {
                if(obj.checked && inputs[i] != obj && inputs[i].checked)
                {
                    inputs[i].checked = false;
                }
            }
        }
    }





<asp:CheckBox ID="CheckBox4" runat="server" onclick ="CheckOne(this)" />


那是什么阻止您使用单选按钮呢? :)我猜想当有一个控件可以像您需要的那样工作时,我看不出为什么有人想要使用旨在以不同方式工作的其他控件..

干杯...
What stops you from using a Radiobutton then? :) I guess when there is a control that works like you need it to, i don''t see any reason why would one want to use something else that is designed to work in a different way..

Cheers...


这篇关于asp.net Datagrid中的清单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆