首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

本人初学者,请求各位大侠帮忙

2013-02-24 
本人菜鸟,请求各位大侠帮忙如何实现datalist中checkbox与DataList1_ItemCommand事件关联,即选中某一个Chec

本人菜鸟,请求各位大侠帮忙
如何实现datalist中checkbox与DataList1_ItemCommand事件关联,即选中某一个CheckBox的时候,单击“接受”,实现添加数据功能????

管理员页面 Admin.aspx为:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Admin.aspx.cs" Inherits="Admin" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>管理员页面</title>
    <style type="text/css">
        .styleTable
        {
          text-align:center ; width :100%
        }
        .styleCell
        {
          font-size :16pt; font-family :华文彩云; color :#669900; 
        }
        .stylePage
        {
            width: 70px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:DataList ID="DataList1" runat="server" Width ="100%" 
            onitemcommand="DataList1_ItemCommand">
            <HeaderTemplate>
                <table class="styleTable">
                    <tr> <td colspan="5" ><h1>申请用户信息</h1></td></tr>
                    <tr class =" styleCell">
                        <td>
                            选择</td>
                        <td>
                            邮箱</td>
                        <td>
                            密码</td>
                        <td>
                            昵称</td>


                        <td>
                            姓名</td>
                        <td>
                            选项</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                    <tr>
                        <td>
                            <asp:CheckBox ID="chbSelect" runat="server" /></td>
                        <td>
                            <asp:Label ID ="lblMailBox" Text ='<%#Eval ("MailBox") %>'  runat ="server" ></asp:Label></td>
                        <td>
                           <asp:Label ID ="lblPassWord" Text ='<%#Eval ("PassWord") %>' runat ="server"></asp:Label> </td>
                        <td>
                           <asp:Label ID ="lblPetName" Text='<%#Eval("PetName")%>' runat ="server"></asp:Label></td>
                        <td>
                          <asp:Label ID ="lblName" Text ='<%#Eval("Name")%>' runat ="server"></asp:Label> </td>
                        <td>
                            <asp:LinkButton ID="lnkbtnAccept" runat="server"  CommandName="accept"  Text="接受"></asp:LinkButton>
                            <asp:LinkButton ID="lnkbtnReject" runat="server"  CommandName="reject" Text="拒绝" ></asp:LinkButton></td>


                    </tr>
            </ItemTemplate>
            <SeparatorTemplate>
                   <tr>
                        <td colspan ="6"><hr />
                                               </td>
                        </tr>
            </SeparatorTemplate>
            <FooterTemplate >
               </table>
            </FooterTemplate>
        </asp:DataList>
    
    </div>
    <asp:Button ID="btnChoice" runat="server" Text="全选" Width="100px" 
        onclick="btnChoice_Click" />
    <br />
    <br />
    <table>
        <tr>
            <td class="stylePage">
                <asp:Label ID="lblSumPage" runat="server" Text="总页数:"></asp:Label>
            </td>
            <td class="stylePage">
                <asp:Label ID="lblSumPageNum" runat="server"></asp:Label>
            </td>
            <td class="stylePage">
                <asp:Label ID="lblCurrentPage" runat="server" Text="当前页:"></asp:Label>
            </td>
            <td class="stylePage">
                <asp:Label ID="lblCurrentPageNum" runat="server" Text="1"></asp:Label>
            </td>
            <td>
                <asp:LinkButton ID="lnkFirstPage" runat="server" onclick="lnkFirstPage_Click">首页</asp:LinkButton>
            </td>


            <td>
                <asp:LinkButton ID="lnkPageUp" runat="server" onclick="lnkPageUp_Click">上一页</asp:LinkButton>
            </td>
            <td>
                <asp:LinkButton ID="lnkPageDown" runat="server" onclick="lnkPageDown_Click">下一页</asp:LinkButton>
            </td>
            <td>
                <asp:LinkButton ID="lnkLastPage" runat="server" onclick="lnkLastPage_Click">末页</asp:LinkButton>
            </td>
            <td>
                &nbsp;</td>
        </tr>
    </table>
    </form>
</body>
</html>
后台Admin.aspx.cs部分代码
 protected void btnChoice_Click(object sender, EventArgs e)
    {
        if (btnChoice.Text == "全选")
        {
            foreach (DataListItem dli in DataList1.Items)
            {
                CheckBox cb = (CheckBox)dli.FindControl("chbSelect");
                cb.Checked = true;
            }
            btnChoice.Text = "全部取消";
        }
        else
        {
            foreach (DataListItem dli in DataList1.Items)
            {
                CheckBox cb = (CheckBox)dli.FindControl("chbSelect");
                cb.Checked = false ;
            }
            btnChoice.Text = "全选";
        }
    }
    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
            if (e.CommandSource.GetType() == typeof(LinkButton))
            {
                if (((LinkButton)e.CommandSource).CommandName == "accept")


                {
                    try
                    {
                        SqlDataAdapter da = new SqlDataAdapter();
                        SqlConnection conn = new SqlConnection();
                        //打开用户UserData数据库
                        conn.ConnectionString = "Data Source=.;Initial Catalog=UserDate;Integrated Security=True";
                        SqlCommand selectCmd = new SqlCommand();
                        selectCmd.CommandText = "select * from UserDate";
                        selectCmd.Connection = conn;
                        SqlCommand insertCmd = new SqlCommand();
                        insertCmd.CommandText = "insert into UserDate values (@MailBox,@PassWord,@PetName,@Name)";
                        insertCmd.Connection = conn;
                        insertCmd.Parameters.Add("@MailBox", SqlDbType.NChar, 20, "MailBox");
                        insertCmd.Parameters.Add("@PassWord", SqlDbType.NChar, 20, "PassWord");
                        insertCmd.Parameters.Add("@PetName", SqlDbType.NChar, 10, "PetName");
                        insertCmd.Parameters.Add("@Name", SqlDbType.NChar, 10, "Name");
                        da.SelectCommand = selectCmd;
                        da.InsertCommand = insertCmd;
                        DataSet data = new DataSet();
                        da.Fill(data, "UserDate");


                        DataRow drNew = data.Tables["UserDate"].NewRow();
                        drNew["MailBox"] = ((Label)e.Item.FindControl("lblMailBox")).Text;
                        drNew["PassWord"] = ((Label)e.Item.FindControl("lblPassWord")).Text;
                        drNew["PetName"] = ((Label)e.Item.FindControl("lblPetName")).Text;
                        drNew["Name"] = ((Label)e.Item.FindControl("lblName")).Text;
                        data.Tables["UserDate"].Rows.Add(drNew);
                        da.Update(data, "UserDate");
                        //打开管理员Admin数据库
                        conn.ConnectionString = "Data Source=.;Initial Catalog=Admin;Integrated Security=True";
                        selectCmd.CommandText = "select * from UserStore";
                        SqlCommand deleteCmd = new SqlCommand();
                        deleteCmd.CommandText = "delete UserStore where MailBox=@MailBox";
                        deleteCmd.Connection = conn;
                        deleteCmd.Parameters.Add("@MailBox", SqlDbType.NChar, 20, "MailBox");
                        da.DeleteCommand = deleteCmd;
                        da.Fill(data, "UserStore");
                        string mailBox = ((Label)e.Item.FindControl("lblMailBox")).Text;
                        DataRow delDr = null;
                        foreach (DataRow dr in data.Tables["UserStore"].Rows)
                        {


                            if (dr["MailBox"].ToString() == mailBox)
                            {
                                delDr = dr;
                                break;
                            }
                        }
                        if (delDr != null)
                        {
                            delDr.Delete();
                            da.Update(data, "UserStore");
                        }
                    }
                    catch (SqlException ex)
                    {
                        Response.Write(ex.Message);
                    }
                    Response.Redirect("Admin.aspx");
                }
} 楼主的意思是要在点“接收”按钮的时候,进行判断,如果CheckBox选中了就添加到数据库,如果没有选中就不添加?


        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            CheckBox box = e.Item.FindControl("chbSelect") as CheckBox;
            if (box == null     //如果无法找到CheckBox
                


[解决办法]
 !box.Checked //如果CheckBox没有选中
                )
            {
                return; 
            }

            //TODO Sth.
        }

热点排行