<asp:GridView ID="gvList" OnRowEditing="gvList_RowEditing" runat="server" BorderColor="#93BEE2" BorderStyle="None" DataKeyNames="VOYAGEID" BorderWidth="0px"
PageSize ="5" AllowPaging ="true" BackColor="Silver" CellPadding="3" AutoGenerateColumns="False" Width="100%" Font-Names="宋体"
Font-Size="36pt" CellSpacing="1" OnRowEditing="gvList_RowEditing" >
<Columns>
<asp:BoundField DataField="VoyageOutCode" HeaderText="出口航次" SortExpression="VOYAGEID">
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="VoyageInCode" HeaderText="进口航次" SortExpression="SHIPID" >
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:TemplateField HeaderText = "英文船名">
<ItemTemplate>
<asp:Label ID = "ShipNameEN" runat ="server" Text ='<%# CSA_GetInfo.GetShipName(Convert.ToInt32(Eval("ShipID").ToString()),"2") %>'></asp:Label>
<%由于数据库中存的是ID,需要通过调用其他的函数(一般放在App_Code内),显示其名称--%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "中文船名">
<ItemTemplate>
<asp:Label ID = "ShipNameCN" runat ="server" Text ='<%# CSA_GetInfo.GetShipName(Convert.ToInt32(Eval("ShipID").ToString()),"1") %>'></asp:Label>
<%由于数据库中存的是ID,需要通过调用其他的函数(一般放在App_Code内),显示其名称--%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="LINE" HeaderText="航线" SortExpression="LINE" >
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:HyperLinkField DataNavigateUrlFields="VOYAGEID,SHIPID"
DataNavigateUrlFormatString="~/CSA/QueryInfoMore.aspx?VOYAGEID={0}&ShipID={1}"
HeaderText="详细资料" Text="详细资料" >
<%传递多个参数的方法--%>
<HeaderStyle HorizontalAlign="Left" />
</asp:HyperLinkField>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
编辑的方法一:
<asp:TemplateField HeaderText="形成航次" Visible ="false">
<ItemTemplate>
<asp:LinkButton id="lbtEdit" runat="server" CausesValidation="false" CommandName="Edit"
OnClientClick="javascript:return confirm('该船舶确认要形成航次?')"> 形成航次
</asp:LinkButton>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
<%需要在<Asp:GridView 中的属性添加 OnRowEditing="gvList_RowEditing" 事件--%>
<%其CS代码是 /// <summary>
/// 形成航次信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvList_RowEditing(object sender, GridViewEditEventArgs e)
{
string ShipID;
ShipID = StringHelp.StringRequest(gvList.DataKeys[e.NewEditIndex].Values[0]);
Response.Redirect("CSA_VoyageApply.aspx?ShipID="+ShipID+"");
}%>
编辑的方法二:
<asp:TemplateField HeaderText="编辑">
<ItemTemplate>
<asp:LinkButton id="lbtEdit" runat="server" CausesValidation="false" CommandName="Edit">编辑</asp:LinkButton>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
其CS:
<%需要在<Asp:GridView 中的属性添加 OnRowEditing="gvList_RowEditing" 事件--%>
//编辑
protected void gvList_RowEditing(object sender, GridViewEditEventArgs e)
{
Response.Redirect(string.Format("~/CSA/Outside{0}.aspx?VOYAGEID={1}", this.Request["state"], gvList.DataKeys[e.NewEditIndex].Values[0]));
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
</Columns>
<EmptyDataTemplate>
暂无数据!
</EmptyDataTemplate>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign ="Center"/>
<RowStyle BackColor="#EFF3FB" HorizontalAlign="Center" VerticalAlign="Middle" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" HorizontalAlign ="Center"/>
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" VerticalAlign="Middle" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign="Justify" VerticalAlign="Middle" BorderStyle="Outset" />
<AlternatingRowStyle BackColor="White" HorizontalAlign="Center" VerticalAlign="Middle" />
<PagerSettings Visible="False" />
</asp:GridView>
鼠标移动行变色:(添加 OnRowDataBound ="gvList_RowDataBound" 事件)
protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//鼠标移动到每项时颜色交替效果
// e.Row.Attributes["onmouseover"] = "this.name=this.style.backgroundColor;this.style.backgroundColor='#CCCCFF';";
// e.Row.Attributes["onmouseout"] = "this.style.backgroundColor=this.name;";
e.Row.Attributes["onmouseover"] = "this.name=this.style.backgroundColor;this.style.backgroundColor='#6699FF';";
e.Row.Attributes["onmouseout"] = "this.style.backgroundColor=this.name;";
}
}
添加单选框:
<asp:TemplateField HeaderText="选择">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbxItem" runat="server" onclick="javascript:SeletSingle(this.id)" BackColor ="AliceBlue"/>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="10px" />
</asp:TemplateField>
其中应用的JS脚本:
<script type="text/javascript">
<!--
function confirmSelect()
{
var frm = document.forms[0];
var numcount = 0;
for (i=0; i<frm.length; i++)
{
if (frm.elements[i].type == "checkbox" && frm.elements[i].name.indexOf('cbxItem') != -1 && frm.elements[i].checked == true)
{
numcount++;
}
}
if (numcount == 0)
{
alert("还没有选择要编辑船舶!");
return false;
}
}
function confirmDelete()
{
var frm = document.forms[0];
var numcount = 0;
for (i=0; i<frm.length; i++)
{
if (frm.elements[i].type == "checkbox" && frm.elements[i].name.indexOf('cbxItem') != -1 && frm.elements[i].checked == true)
{
numcount++;
}
}
if (numcount == 0)
{
alert("还没有选择要删除的船舶!");
return false;
}
else
{
if(confirm("确认要删除该船舶吗?"))
{
return true;
}
else
{
return false;
}
}
}
function SeletSingle (idVal)
{
//alert(idVal);
var frm = document.forms[0];
for (i=0; i<frm.length; i++)
{
if (frm.elements[i].type == "checkbox" && frm.elements[i].name.indexOf('cbxItem') != -1 && frm.elements[i].checked == true)
{
frm.elements[i].checked = false;
}
}
document.all[idVal].checked=true;
}
//-->
</script>
其他调用
<asp:Button ID="btnEdit" runat="server" CssClass="ButtonCss1" OnClick="btnEdit_Click"
Text="编辑" OnClientClick="javascript:return confirmSelect()" />
<asp:Button ID="btnDelete"
runat="server" CssClass="ButtonCss1" OnClick="btnDelete_Click" Text="删除" OnClientClick="javascript:return confirmDelete()" />
CS代码:
/// <summary>
/// 编辑船舶信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEdit_Click(object sender, EventArgs e)
{
string strSql = string.Empty;
foreach (GridViewRow row in gvList.Rows)
{
CheckBox delItem = row.FindControl("cbxItem") as CheckBox;
if (delItem != null && delItem.Checked)
{
Response.Redirect("CSA_EditShip.aspx?ShipID=" + gvList.DataKeys[row.RowIndex].Values[0] + "");
// Response.Redirect(string.Format("{0}?ShipID={1}", UrlLinks.GetEditShip(Page), gvList.DataKeys[row.RowIndex].Values[0]));
}
}
BindData();
}
/// <summary>
/// 删除船舶信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDelete_Click(object sender, EventArgs e)
{
string strSql = string.Empty;
foreach (GridViewRow row in gvList.Rows)
{
CheckBox delItem = row.FindControl("cbxItem") as CheckBox;
if (delItem != null && delItem.Checked)
{
//bll.Delete(Convert.ToInt32(gvList.DataKeys[row.RowIndex].Values[0]));
strSql = string.Format("update CSA_Ship_List set IsDeleted='1' where ShipID={0}", gvList.DataKeys[row.RowIndex].Values[0]);
DbHelperSQL.ExecuteSql(strSql);
LTP.Common.MessageBox.Show(this.Page,"删除成功!!");
}
}
BindData();
}
自带的编辑/更新/取消
<asp:GridView ID="gvService" runat="server" HorizontalAlign="Center" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" Width="90%" OnRowEditing="gvService_RowEditing" OnRowCancelingEdit="gvService_RowCancelingEdit" OnRowUpdating="gvService_RowUpdating" >
<Columns>
<asp:BoundField DataField="VoyageID" HeaderText="航次ID" ReadOnly="True" SortExpression="VoyageID" />
<asp:BoundField DataField="ServiceID" HeaderText="服务ID" ReadOnly="True" SortExpression="ServiceID"/>
<asp:BoundField DataField="ServiceItem" HeaderText="服务项目" ReadOnly="True" SortExpression="ServiceItem" />
<asp:BoundField DataField="APPLYTIME" HeaderText="申请时间" ReadOnly="True" SortExpression="APPLYTIME" />
<asp:TemplateField HeaderText="办理时间" SortExpression="PERFORMTIME">
<EditItemTemplate>
<INPUT id ="tbxPERFORMTIME" type="text" onfocus="setday(this)" value='<%# Bind("PERFORMTIME") %>' readonly class="InputCss" runat ="server" name ="tbxPERFORMTIME"/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PERFORMTIME") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign="Left" />
<AlternatingRowStyle BackColor="White" />
<EmptyDataTemplate>
</EmptyDataTemplate>
</asp:GridView>
cs:
//编辑服务项目办理时间
protected void gvService_RowEditing(object sender, GridViewEditEventArgs e)
{
gvService.EditIndex = e.NewEditIndex;
// BindService(Convert.ToInt32(StringHelp.StringRequest(Request["voyageid"])));// 其他地方的显示应用
}
protected void gvService_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvService.EditIndex = -1;
// BindService(Convert.ToInt32(StringHelp.StringRequest(Request["voyageid"])));
}
protected void gvService_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新内容
int voyageid = Convert.ToInt32(StringHelp.StringRequest(Request["voyageid"]));
int serviceid;
string performTime;
serviceid = int.Parse(gvService.Rows[e.RowIndex].Cells[1].Text);
performTime = gvService.Rows[e.RowIndex].Cells[4].Text;
HtmlInputControl input = gvService.Rows[e.RowIndex].Cells[4].FindControl("tbxPERFORMTIME") as HtmlInputControl;
if (null != input)
{
performTime = input.Value;
}
if (!string.IsNullOrEmpty(performTime))
{
ONPORTSERVICE_LISTBLL bll = new ONPORTSERVICE_LISTBLL();
ONPORTSERVICE_LIST ol = bll.GetModel(voyageid, serviceid);
if (null != ol && null != ol.PERFORMTIME)
{
StringHelp.WinAlert(Page, "办理时间一旦填写不能更改,可在补充备注中写明修改!");
}
else
{
ol.PERFORMTIME = Convert.ToDateTime(performTime);
bll.Update(ol);
}
}
gvService.EditIndex = -1;
// BindService(Convert.ToInt32(StringHelp.StringRequest(Request["voyageid"])));
}
//更新备注 时间
protected void btnContentUpdate_Click(object sender, EventArgs e)
{
int voyageId;
voyageId = int.Parse(StringHelp.StringRequest(Request["voyageid"]));
ONPORTSERVICE_LIST ol = new ONPORTSERVICE_LIST();
ONPORTSERVICE_LISTBLL bll = new ONPORTSERVICE_LISTBLL();
ol = bll.GetModel(voyageId, 0);
if (ol != null)
{
if (!string.IsNullOrEmpty(tbxNewRemarks.Text))
{
ol.REMARKS = ol.REMARKS + "\r\n(" + DateTime.Now + "):\r\n" + this.tbxNewRemarks.Text;
}
if (!string.IsNullOrEmpty(tbxRemarksTime.Value))
{
ol.APPLYTIME = Convert.ToDateTime(tbxRemarksTime.Value);
}
bll.Update(ol);
StringHelp.WinAlertAndLocation(Page, "更新成功!", Request.RawUrl);
}
}