[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>代码如上,因为需要联动,在点击删除按纽时候,需要弹出确认和取消.但用了几种方法都不能实现,希望那位给点帮助.
<%@ 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>代码如上,因为需要联动,在点击删除按纽时候,需要弹出确认和取消.但用了几种方法都不能实现,希望那位给点帮助.
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 = "";
}
}
{
//判断是否绑定行。
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();
}
<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="javascript:return confirm('确定删除吗?');">删除</asp:LinkButton>
{
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 + "吗')");
}
}
}
如果用这种方法 报错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
onclick="lbtnDel_Click" CausesValidation="false" OnClientClick="return confirm('确定删除?');" />
不用这个LinkButton 用的控件自身的
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[第几列]..Attributes.Add("onclick", "return confirm('确实要删除?)");
}
}