[code=C#]
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Dept.aspx.cs" Inherits="Dept" Title="Department Page" %>
<%@ Register TagPrefix="custom" Namespace="myControls" %><asp:Content ID="Content3" ContentPlaceHolderID="MainContent" Runat="Server">
    <table border="0" cellpadding="3px" cellspacing="0" width="100%">
    <tr><td align="left"><h3><asp:Label ID="lblTitle" runat="server" /></h3></td>
        <td align="right">
        | <asp:LinkButton ID="lbtnAdd" CommandName="Add" Text="Add" runat="server" 
                onclick="lbtnAdd_Click" CausesValidation="false" /> 
        | <asp:LinkButton ID="lbtnEdit" CommandName="Edit" Text="Edit" runat="server" 
                onclick="lbtnEdit_Click" CausesValidation="false" /> 
        | <asp:LinkButton ID="lbtnDel" CommandName="Delete" Text="Delete" runat="server" 
                onclick="lbtnDel_Click" CausesValidation="false" /> |        </td>
    </tr>
    </table>    <asp:Panel ID="pnlAddDept" GroupingText="Add a Department" runat="server" Width="595px" Visible="false" >
    <table width="595px" cellpadding="5" >
    <tr><td width="20%" align="right">Department ID </td>
        <td width="25%"><asp:TextBox ID="txtDeptID" runat="server" /> <asp:RequiredFieldValidator  ID="RFVDeptID" runat="server" ControlToValidate="txtDeptID" ErrorMessage="Required Field" /></td>
        <td width="25%" align="right">Department Name</td>
        <td><asp:TextBox ID="txtDeptName" runat="server" /> <asp:RequiredFieldValidator  ID="RFVDeptName" runat="server" ControlToValidate="txtDeptName" ErrorMessage="Required Field" /> </td>
    </tr>
    <tr><td align="right">Settlement By</td> 
        <td colspan="3"><asp:DropDownList ID="ddlReportToDept" runat="server" Width="150" /></td>
    </tr>
    
    <tr><td colspan="4" align="center"><asp:Label ID="lblErr" runat="server" CssClass="ErrMsg" /><asp:Label ID="lblMsg" runat="server" CssClass="OKMsg" /></td></tr>
    
    <tr class="CmdBgColor"><td colspan="2" align="left"><asp:Button ID="btnAdd" 
            Text=" Add " runat="server" onclick="btnAdd_Click" /></td> 
        <td colspan="2" align="right"><asp:Button ID="btnClose" Text="Close" runat="server" 
                onclick="btnClose_Click" CausesValidation="false" /></td>
    </tr>
    </table>
    </asp:Panel>
    
    <table border="0" cellpadding="3px" cellspacing="0" width="600px">
    <tr><td align="left">Search <asp:TextBox ID="txtSearch" runat="server" /> <asp:Button ID="btnSearch" 
                Text=" Go " runat="server" onclick="btnSearch_Click" CausesValidation="false" />
                <hr /> </td> 
    </tr>
    <tr><td align="center"><asp:Label ID="lblErr2" runat="server" CssClass="ErrMsg" /><asp:Label ID="lblMsg2" runat="server" CssClass="OKMsg" /></td></tr>
    
    <tr><td><asp:GridView ID="gvDept" runat="server" AutoGenerateColumns="false"  DataKeyNames="DeptID" 
            Width="600px" CellPadding="8" AllowPaging="true" EnableViewState="true" 
            PagerSettings-Mode="NumericFirstLast" PageSize="10" 
            OnPageIndexChanging="gvDept_PageIndexChanging" 
            OnRowEditing="gvDept_OnEdit" 
            OnRowDeleting="gvDept_OnDelete" 
            OnRowCancelingEdit="gvDept_OnCancelEdit"
            OnRowUpdating="gvDept_RowUpdating" RowStyle-Wrap="true">            <HeaderStyle CssClass="gvHeader" />
            <AlternatingRowStyle BackColor= "#f3f3f3" />
            
            <Columns>
            
            <asp:BoundField DataField="DeptID" HeaderText="Department ID" ReadOnly="true">
                <ItemStyle HorizontalAlign="Left" />
                <HeaderStyle HorizontalAlign="Left" Width="20%" CssClass="gvHeader" />
            </asp:BoundField>
            
            <asp:BoundField DataField="DeptName" HeaderText="Department">
                <ItemStyle HorizontalAlign="Left" />
                <HeaderStyle HorizontalAlign="Left" Width="40%" CssClass="gvHeader" />
            </asp:BoundField>
            
            <asp:TemplateField HeaderText="Settlement By" HeaderStyle-CssClass="gvHeader" HeaderStyle-HorizontalAlign="Left" >
            
            <ItemTemplate>
                <%# Eval("AcctDept") %>
            </ItemTemplate>
            
            <EditItemTemplate>
                <asp:DropDownList ID="ddlRepotToList" 
                    DataSourceID="srcReportToDept" 
                    DataTextField="DeptName"  
                    DataValueField="DeptID" 
                    SelectedValue='<%# Bind("ReportTo") %>' 
                    runat="server" >
                  <asp:ListItem Text="None" Value="None" />
                </asp:DropDownList>
            </EditItemTemplate>
            
            </asp:TemplateField>                      
            
            </Columns>
           
            </asp:GridView>
            
            <asp:SqlDataSource ID="srcReportToDept" ConnectionString='<%$ ConnectionStrings:ConnStr %>'   
             SelectCommand="SELECT DeptName='None', DeptID = null UNION SELECT DeptName, DeptID FROM Dept"
             runat="server" />
    </td>
    </tr>
    </table>
</asp:Content>代码如上,因为需要联动,在点击删除按纽时候,需要弹出确认和取消.但用了几种方法都不能实现,希望那位给点帮助.

解决方案 »

  1.   

    [/code]
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    public partial class Dept : System.Web.UI.Page
    {
        String strConn = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        
        private const string ASCENDING = " ASC";
        private const string DESCENDING = " DESC";    protected void Page_Load(object sender, EventArgs e)
        {
           // gvDept.Attributes.Add("onclick", "return confirm('你确定要删除吗?')");
            //Show the subtitle of the page
            if (!IsPostBack)
            {
                lblTitle.Text = "Department";
                listDept();
            }
        }    private void listDept()
        {
            cDept Dept = new cDept();
            gvDept.DataSource = Dept.ListDept(txtSearch.Text.Trim());
            gvDept.DataBind();
        }    protected void btnSearch_Click(object sender, EventArgs e)
        {
                listDept();
        }    protected void lbtnAdd_Click(object sender, EventArgs e)
        {
            if (!pnlAddDept.Visible)
            {
                cDept AcctDept = new cDept();
                //Show the Add screen
                pnlAddDept.Visible = true;
                
                //populate ReportTo Dept list
                ddlReportToDept.DataTextField = "DeptName";
                ddlReportToDept.DataValueField = "DeptID";
                ddlReportToDept.DataSource = AcctDept.ListDept("");
                ddlReportToDept.DataBind();            ddlReportToDept.Items.Insert(0, new ListItem("None", "None"));
                ddlReportToDept.SelectedIndex = 0;        }
        }    protected void lbtnEdit_Click(object sender, EventArgs e)
        {
            //gvDept.DataBind();
            if (!gvDept.AutoGenerateEditButton)
            {
                gvDept.AutoGenerateEditButton = true;
                lbtnEdit.Text = "Cancel Edit";
            }
            else
            {
                gvDept.AutoGenerateEditButton = false;
                lbtnEdit.Text = "Edit";
            }        ClearMsg2();
            listDept();
        }    protected void lbtnDel_Click(object sender, EventArgs e)
        {
            if (!gvDept.AutoGenerateDeleteButton)
            {
                gvDept.AutoGenerateDeleteButton = true;
                lbtnDel.Text = "Cancel Delete";
            }
            else
            {
                gvDept.AutoGenerateDeleteButton = false;
                lbtnDel.Text = "Delete";
            }
            ClearMsg2(); //Clear screen message(s)
            listDept(); //Refresh the GridView control
        }    protected void btnClose_Click(object sender, EventArgs e)
        {
            if (pnlAddDept.Visible)
            {
                pnlAddDept.Visible = false;
            }        ClearMsg();
        }    protected void btnAdd_Click(object sender, EventArgs e)
        {
                //Clear screen messages
                ClearMsg();            cDept NewEntity = new cDept();
                NewEntity.DeptID = txtDeptID.Text;
                NewEntity.DeptName = txtDeptName.Text;
                NewEntity.ReportTo = ddlReportToDept.SelectedValue.Trim();            int AffectedRec = NewEntity.SaveDept("Insert");
                lblErr.Text = NewEntity.ErrMsg;            if (AffectedRec > 0)
                {
                    gvDept.DataBind();
                    lblMsg.Text = "The Department has been created successfully.";
                }            listDept();
        }    protected void ClearMsg()
        {
            lblMsg.Text = "";
            lblErr.Text = "";
        }    protected void gvDept_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            ClearMsg2(); //Clear screen message        if (gvDept.PageIndex < 0 || gvDept.PageIndex >= gvDept.PageCount)
            {
                gvDept.PageIndex = 0;
            }
            else
            {
                gvDept.PageIndex = e.NewPageIndex;
                //gvDept.DataBind();
                listDept();
            }
        }    protected void gvDept_OnEdit(object sender, GridViewEditEventArgs e)
        {
            ClearMsg2();
            int index = e.NewEditIndex;
            gvDept.EditIndex =index;
            listDept();    }
        protected void gvDept_OnDelete(object sender, GridViewDeleteEventArgs e)
        {          ClearMsg2(); //Clear the screen messages            int index = Convert.ToInt32(e.RowIndex);            String mDeptID = this.gvDept.DataKeys[index].Value.ToString();            cDept DelDept = new cDept();           DelDept.DeptID = mDeptID;            int IntRowsAff = DelDept.DelDept();            if (IntRowsAff > 0)
                {
                    Response.Write("<script>window.confirm('确定删除吗?');</script>");
                    gvDept.DataBind();
                }
                else
                {
                    lblErr2.Text = DelDept.ErrMsg;
                }
                gvDept.EditIndex = -1;
                listDept();
       }    protected void gvDept_OnCancelEdit(object sender, GridViewCancelEditEventArgs e)
        {
          gvDept.EditIndex = -1;
          listDept();
        }    protected void gvDept_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            ClearMsg2(); //Clear the screen messages        int index = Convert.ToInt32(e.RowIndex);        String mDeptID = this.gvDept.DataKeys[index].Value.ToString();        cDept EditDept = new cDept();        EditDept.DeptID = mDeptID;        EditDept.DeptName = (gvDept.Rows[e.RowIndex].Cells[2].Controls[0] as TextBox).Text;
            EditDept.ReportTo = (gvDept.Rows[e.RowIndex].Cells[3].Controls[1] as DropDownList).SelectedValue;        int IntRowsAff = EditDept.SaveDept("Update");        if (IntRowsAff > 0)
            {            lblMsg2.Text = "Department " + mDeptID + " has been updated successfully.";
                gvDept.DataBind();
            }
            else
            {
                lblErr2.Text = EditDept.ErrMsg;
            }
            gvDept.EditIndex = -1;
            //gvDept.DataBind();
            listDept();
        }    protected void ClearMsg2() //Clear the screen messages in working with 'Edit' and 'Delete'
        {
            lblErr2.Text = "";
            lblMsg2.Text = "";
        }
    }
      

  2.   

     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //判断是否绑定行。
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //同时使用几个对象才有的。
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
                {
                    ((LinkButton)e.Row.Cells[5].Controls[0]).Attributes.Add("onclick", "javascrip:return confirm('确实要删除ID" + e.Row.Cells[1].Text + "吗')");
                }
            }
        }
    --------------------------------------------------
     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string delstr = "delete  from T_Base_info where infoid = '" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
            if (balcls.sqlcom (delstr))
            {
                Response.Write("<script>alert('删除成功');</script>");
            }
            else
            {
                Response.Write("<script>alert('删除失败');</scrit>");
            }
            databind();
        }
      

  3.   

    服务器控件按钮有个OnClientClick属性……然后这么写就没事了……
    <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="javascript:return confirm('确定删除吗?');">删除</asp:LinkButton>
      

  4.   

    直接在后台属性中在该控件的attributes中添加confirm就行,当他点取消时会自动不执行单击事件里边的代码,点确定时才会执行
      

  5.   

    你在后置代码的GridView的RowDataBound事件里这样写就OK了,代码如下(里面的那个Cell[10]是我随便写的,你得根据你的实际情况写):protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        {  
            if (e.Row.RowType == DataControlRowType.DataRow) 
            {  
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate) 
                { 
                    ((LinkButton)e.Row.Cells[10].Controls[0]).Attributes.Add("onclick", "javascrip:return confirm('确实要删除ID" + e.Row.Cells[0].Text + "吗')"); 
                } 
            } 
        } 
      

  6.   


    如果用这种方法 报错Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    Parameter name: indexSource Error: 
    Line 165:            if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
    Line 166:            {
    Line 167:                ((LinkButton)e.Row.Cells[1].Controls[0]).Attributes.Add("onclick", "javascrip:return confirm('确实要删除ID" + e.Row.Cells[0].Text + "吗')");
    Line 168:            }
    Line 169:        }
     Source File: c:\Documents and Settings\hwang\My Documents\Visual Studio 2005\WebSites\ExpenseReport_Dev\Dept.aspx.cs    Line: 167 Stack Trace: 
    [ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    Parameter name: index]
       System.Web.UI.ControlCollection.get_Item(Int32 index) +74
       Dept.gvDept_RowDataBound(Object sender, GridViewRowEventArgs e) in c:\Documents and Settings\hwang\My Documents\Visual Studio 2005\WebSites\ExpenseReport_Dev\Dept.aspx.cs:167
       System.Web.UI.WebControls.GridView.OnRowDataBound(GridViewRowEventArgs e) +78
       System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +168
       System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +2444
       System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +58
       System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +15
       System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +104
       System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +27
       System.Web.UI.WebControls.DataBoundControl.PerformSelect() +133
       System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +71
       System.Web.UI.WebControls.GridView.DataBind() +5
       Dept.listDept() in c:\Documents and Settings\hwang\My Documents\Visual Studio 2005\WebSites\ExpenseReport_Dev\Dept.aspx.cs:37
       Dept.Page_Load(Object sender, EventArgs e) in c:\Documents and Settings\hwang\My Documents\Visual Studio 2005\WebSites\ExpenseReport_Dev\Dept.aspx.cs:29
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
       System.Web.UI.Control.OnLoad(EventArgs e) +73
       System.Web.UI.Control.LoadRecursive() +52
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184 
      

  7.   

    <asp:LinkButton ID="lbtnDel" CommandName="Delete" Text="Delete" runat="server" 
                    onclick="lbtnDel_Click" CausesValidation="false" OnClientClick="return confirm('确定删除?');" /> 
      

  8.   


    不用这个LinkButton 用的控件自身的
      

  9.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        {  
            if (e.Row.RowType == DataControlRowType.DataRow) 
            {  
                    e.Row.Cells[第几列]..Attributes.Add("onclick", "return confirm('确实要删除?)"); 
            } 
        }