GridView

来源:互联网 发布:文字表情制作软件 编辑:程序博客网 时间:2024/04/28 20:05

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Vote.aspx.cs" Inherits="Vote" %>

<!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 runat="server">
    <title>投票显示</title>
   
</head>
<body>
    <form id="form1" runat="server">
    <div style="text-align:center; font-size:small;">
        <asp:GridView ID="VoteItemManage" runat="server" AutoGenerateColumns="False" Width="760px" DataKeyNames="ItemID" OnRowCommand="VoteItemManage_RowCommand" OnRowCreated="VoteItemManage_RowCreated" OnRowDataBound="VoteItemManage_RowDataBound" OnRowCancelingEdit="VoteItemManage_RowCancelingEdit" OnRowDeleting="VoteItemManage_RowDeleting" OnRowEditing="VoteItemManage_RowEditing" OnRowUpdating="VoteItemManage_RowUpdating" ShowFooter="true">
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>
                       
                        <asp:LinkButton ID="lkAddItem" runat="server" CausesValidation="False" CommandName="AddItem">新增</asp:LinkButton>
                    </HeaderTemplate>
                   
                    <FooterTemplate>
                        <%# VoteItemManage.Rows.Count+1%>
                    </FooterTemplate>
                    <ItemTemplate>
                        <%# Container.DataItemIndex+1%>
                    </ItemTemplate>
                   
                </asp:TemplateField>
                <asp:TemplateField HeaderText="投票子选项">
                <ItemStyle Width="30%" />
                    <EditItemTemplate>
                        <asp:TextBox ID="ItemTxt" runat="server" Text='<%# Bind("VoteContent")%>'> </asp:TextBox>
                        <asp:RequiredFieldValidator ID="rf_ItemTxt" runat="server" ControlToValidate="ItemTxt"
                            ErrorMessage="必填" ValidationGroup="EVC"></asp:RequiredFieldValidator>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="ItemContent" runat="server" Text='<%# Bind("VoteContent")%>'></asp:Label>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="addItemTxt" Text='' runat="server" MaxLength="100"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="addItemTxt"
                            ErrorMessage="必填" ValidationGroup="IVC"></asp:RequiredFieldValidator>
                    </FooterTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="父选项">
                    <EditItemTemplate>
                        <asp:DropDownList ID="EditItem_father" runat="server">
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:DropDownList ID="EditItem_father" runat="server" Enabled="False">
                        </asp:DropDownList>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:DropDownList ID="EditItem_father" runat="server">
                        </asp:DropDownList>
                    </FooterTemplate>
                </asp:TemplateField>
                <asp:TemplateField ShowHeader="False">
                    <EditItemTemplate>
                        <asp:LinkButton ID="btn_update" runat="server" ValidationGroup="EVC">更新</asp:LinkButton>
                        <asp:LinkButton ID="btn_cancel" runat="server" CausesValidation="false">取消</asp:LinkButton>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="btn_Edit" runat="server" CommandName="Edit" CausesValidation="false">编辑</asp:LinkButton>
                        <asp:LinkButton ID="btn_Delete" runat="server" CommandName="Delete" CausesValidation="false">删除</asp:LinkButton>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:LinkButton ID="lkbSure" runat="server" CommandName="ItemSure" ValidationGroup="IVC">确定</asp:LinkButton>
                        <asp:LinkButton ID="lkbSCancel" runat="server" CausesValidation="False" CommandName="ItemCancel">取消</asp:LinkButton>
                    </FooterTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:Button ID="addNewItem" runat="server" Text="新增" OnClick="addNewItem_Click" />
     
         
       
     
        </div>
    </form>
   
</body>
</html>

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Vote : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Bind();
        }
    }

 
    private void Bind()
    {
        DB_Vote db_vote = new DB_Vote();
        DataView dv = new DataView();
        dv = db_vote.getDataSource("select * from VoteItem", "VoteItem").DefaultView;
        VoteItemManage.DataSource = dv;
        VoteItemManage.DataBind();
    }

    protected void VoteItemManage_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "AddItem")
        {
            VoteItemManage.ShowFooter = true;
        }
        if (e.CommandName == "ItemCancel")
        {
            VoteItemManage.ShowFooter = false;
        }
        if (e.CommandName == "ItemSure")//点新增状态下“确定”按钮
        {
            try
            {
                TextBox voteItem = VoteItemManage.FooterRow.FindControl("addItemTxt") as TextBox;
                DropDownList fatherItem = VoteItemManage.FooterRow.FindControl("EditItem_father") as DropDownList;
                int voteID = Convert.ToInt32(fatherItem.SelectedValue);
                Vote_online v = new Vote_online();
                v._VoteID = voteID;
                v._VoteContent = voteItem.Text.Trim();
                if (new DB_Vote().InsertNewItem(v))
                {
                    VoteItemManage.ShowFooter = false;
                    Bind();
                }
            }
            catch (Exception err)
            {
                Response.Write("错误原因:" + err.Message);
            }
        }
    }
    protected void VoteItemManage_RowCreated(object sender, GridViewRowEventArgs e)
    {
        ListItemType itemType = (ListItemType)e.Row.RowType;
        if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem)
        {
            if (VoteItemManage.EditIndex < 0)//说明是正常显示状态,为“删除”按钮添加属性
            {
                ((LinkButton)e.Row.Cells[3].FindControl("btn_Delete")).Attributes.Add("onclick", "return confirm(/"确定要删除此记录吗?/");");

            }
            else//说明是编辑状态,为“取消”按钮添加属性
            {
                ((LinkButton)e.Row.Cells[3].FindControl("btn_cancel")).Attributes.Add("onclick", "return confirm(/"确定要取消吗?/");");
            }
        }
    }
    protected void VoteItemManage_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if ((DropDownList)e.Row.FindControl("EditItem_father") != null)
        {
            DropDownList ddlxl = (DropDownList)e.Row.FindControl("EditItem_father");
            ddlxl.Items.Clear();
            ddlxl.DataSource = (new DB_Vote()).getDataSource("select * from [Vote]", "Vote").DefaultView;
            ddlxl.DataTextField = "VoteItem";
            ddlxl.DataValueField = "VoteID";
            ddlxl.DataBind();
        }
    }
    protected void VoteItemManage_RowEditing(object sender, GridViewEditEventArgs e)
    {
        VoteItemManage.EditIndex = e.NewEditIndex;
        Bind();
    }
    protected void VoteItemManage_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        VoteItemManage.EditIndex = -1;
        Bind();
    }
    protected void VoteItemManage_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string rowToDelete = VoteItemManage.DataKeys[e.RowIndex].Value.ToString();
        int row_ToDelete = int.Parse(rowToDelete);
        try
        {
            DB_Vote db_vote = new DB_Vote();
            if (db_vote.Delete_VoteItem(row_ToDelete))
            {
                Bind();
            }
        }
        catch (Exception error)
        {
            Response.Write("数据库错误,错误原因:" + error.Message);
        }
    }
    protected void VoteItemManage_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        string rowItemID = VoteItemManage.DataKeys[e.RowIndex].Value.ToString();
        string rowItemContent = ((TextBox)VoteItemManage.Rows[e.RowIndex].FindControl("ItemTxt")).Text;
        string rowVoteID = ((DropDownList)VoteItemManage.Rows[e.RowIndex].FindControl("EditItem_father")).SelectedValue;
        int ItemID = Convert.ToInt32(rowItemID);
        int VoteID = Convert.ToInt32(rowVoteID);
        Vote_online v = new Vote_online();
        v._ItemID = ItemID;
        v._VoteID = VoteID;
        v._VoteContent = rowItemContent;
        DB_Vote db_vote = new DB_Vote();
        try
        {
            if (db_vote.Edit_VoteItem(v))
            {
                VoteItemManage.EditIndex = -1;
                Bind();
            }
        }
        catch (Exception exc)
        {
            Response.Write("数据库错误,错误原因:" + exc.Message);
        }
    }
    protected void addNewItem_Click(object sender, EventArgs e)
    {
        VoteItemManage.ShowFooter = true;
    }
}
 

原创粉丝点击