有一个DataGrid:
ID 编号 原工资 新工资 生效日期 是否生效 编辑
1 A0001 2000 3000 206-12-30 1 编辑
2 A0003 2000 3000 207-01-30 编辑问题:当"是否生效"字段的值为"1"时,怎样令这条记录的编辑项(LinkButton)为:Disable或者
弹出对话框提示不能修改.谢谢!!!!!
ID 编号 原工资 新工资 生效日期 是否生效 编辑
1 A0001 2000 3000 206-12-30 1 编辑
2 A0003 2000 3000 207-01-30 编辑问题:当"是否生效"字段的值为"1"时,怎样令这条记录的编辑项(LinkButton)为:Disable或者
弹出对话框提示不能修改.谢谢!!!!!
解决方案 »
- 如何解决iis没有注册asp.net2.0
- 如何用readxml读取xml指定数量的记录?
- webform 在dropdownlist中如何實現自動匹配功能??
- 我把网站上传到服务器时,他为什么说我 未能加载程序集“App_Web_xjvyde4h”。请确保在访问该页之前已经编译了此程序集。是什么原因啊?
- 小问题,大家给看一下
- 求助如何用Attrbutes属性
- 站点应用了FORM认证,如何让某一页不需要认证就可以访问?
- 一个极为变态的问题,请高手们帮忙,谢谢
- ASP.Net配置工具有个问题,请大家进来帮忙解决啊!
- html控件动态加载innerhtml后,FindControl找不到里面的控件
- 在看petshop时,发现sqlhelp类中datareader没有关闭,对应的conn也没关闭,不解,望大虾解释
- 高手指教:将ASP中vbscript脚本的如何在ASP.NET2.0中实现
{
if(e.Item.ItemIndex>-1)
{
DataRowView row = (DataRowView)e.Item.DataItem;
if(row["是否生效"].ToString() == "1")
{
LinkButton lbtn = e.Item.Cells[6].Controls[0] as LinkButton;
lbtn.Enabled = false;
}
}
}
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton id="myLinkButtonID" runat="server">编辑</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>则改为:
LinkButton lbtn = e.Item.FindControl("myLinkButtonID") as LinkButton;
--------------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;namespace Raises.Page
{
/// <summary>
/// QueryRaise 的摘要说明。
/// </summary>
public class QueryRaise : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid Mydg;
protected System.Web.UI.WebControls.LinkButton PageFirst;
protected System.Web.UI.WebControls.LinkButton PagePrev;
protected System.Web.UI.WebControls.LinkButton PageNext;
protected System.Web.UI.WebControls.LinkButton PageLast;
private readonly string SQLCONNECTIONSTRING=ConfigurationSettings.AppSettings["SQLCONNECTIONSTRING"].ToString();private void BindDataGrid()
{
SqlConnection myConnection = new SqlConnection(SQLCONNECTIONSTRING);
string sqlstr = "Select * from Raises";
SqlCommand myCommand = new SqlCommand(sqlstr,myConnection);
myConnection.Open();
SqlDataAdapter da = new SqlDataAdapter(myCommand);
DataSet ds = new DataSet();
da.Fill(ds);
Mydg.DataSource = ds;
Mydg.DataBind();
myConnection.Close();
}private void Mydg_PageIndexChanged(object source,System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
Mydg.CurrentPageIndex = e.NewPageIndex;
BindDataGrid();
}private void PageCut_Click(object sender,System.EventArgs e)
{
string commangArg=((LinkButton)sender).CommandArgument;
switch(commangArg)
{
case "First":{Mydg.CurrentPageIndex = 0;break;}
case "Prev":{Mydg.CurrentPageIndex = (int)Math.Max(0,Mydg.CurrentPageIndex - 1);break;}
case "Next":{Mydg.CurrentPageIndex = (int)Math.Min(Mydg.PageCount - 1,Mydg.CurrentPageIndex + 1);break;}
case "Last":{Mydg.CurrentPageIndex = Mydg.PageCount - 1;break;}
default:{break;}
}
BindDataGrid();
IsFirstLastPage();
}
private void IsFirstLastPage()
{
if(Mydg.PageCount > 0)
{
if(Mydg.PageCount != 1)
{
if(Mydg.CurrentPageIndex == 0)
{
PagePrev.Enabled = false;
}
else
{
PagePrev.Enabled = true;
}
if(Mydg.CurrentPageIndex == Mydg.PageCount -1)
{
PageNext.Enabled = false;
}
else
{
PageNext.Enabled = true;
}
}
else
{
PagePrev.Enabled = false;
PageNext.Enabled = false;
}
}
else
{
PageFirst.Enabled = false;
PageLast.Enabled = false;
PageNext.Enabled = false;
PagePrev.Enabled = false;
}
}
private void Mydg_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
Mydg.EditItemIndex=(int)e.Item.ItemIndex;
Mydg.DataBind();
BindDataGrid();}private void Mydg_CancelCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
Mydg.EditItemIndex=-1;
BindDataGrid();
}private void Mydg_UpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{SqlConnection myConnection=new SqlConnection(SQLCONNECTIONSTRING);
string strSQL2="select Effect from raises where ViewOrder=@ViewOrder";
string strSQL="Update Raises Set NewSalary=@NewSalary,TakeEffectDate=@TakeEffectDate,Behave=@Behave,Re=@Re,Effect=@Effect Where ViewOrder=@ViewOrder";
SqlCommand myCommand=new SqlCommand(strSQL,myConnection);
myConnection.Open();myCommand.Parameters.Add(new SqlParameter("@ViewOrder",SqlDbType.Int));
myCommand.Parameters.Add(new SqlParameter("@NewSalary",SqlDbType.Decimal,2));
myCommand.Parameters.Add(new SqlParameter("@TakeEffectDate",SqlDbType.DateTime));
myCommand.Parameters.Add(new SqlParameter("@Behave",SqlDbType.VarChar,50));
myCommand.Parameters.Add(new SqlParameter("@Re",SqlDbType.VarChar,50));
myCommand.Parameters.Add(new SqlParameter("@Effect",SqlDbType.VarChar,10));
myCommand.Parameters["@NewSalary"].Value=((TextBox)e.Item.Cells[7].Controls[1]).Text;
myCommand.Parameters["@TakeEffectDate"].Value=((TextBox)e.Item.Cells[8].Controls[1]).Text;
myCommand.Parameters["@Behave"].Value=((TextBox)e.Item.Cells[9].Controls[1]).Text;
myCommand.Parameters["@Re"].Value=((TextBox)e.Item.Cells[10].Controls[1]).Text;
myCommand.Parameters["@Effect"].Value=((RadioButtonList)e.Item.Cells[11].Controls[1]).SelectedValue;
myCommand.Parameters["@ViewOrder"].Value=((Label)e.Item.Cells[0].Controls[1]).Text;
//Convert.ToString(int.Parse(e.Item.ItemIndex.ToString())+1); 这句在利用了页面提交后,更新数据时异常.
myCommand.ExecuteNonQuery();
Mydg.EditItemIndex=-1;
myConnection.Close();
BindDataGrid();
}private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
BindDataGrid();
IsFirstLastPage();
}
}#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Mydg.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.Mydg_PageIndexChanged);
this.Mydg.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Mydg_CancelCommand);
this.Mydg.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Mydg_EditCommand);
this.Mydg.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Mydg_UpdateCommand);
this.PageFirst.Click += new System.EventHandler(this.PageCut_Click);
this.PagePrev.Click += new System.EventHandler(this.PageCut_Click);
this.PageNext.Click += new System.EventHandler(this.PageCut_Click);
this.PageLast.Click += new System.EventHandler(this.PageCut_Click);
this.Load += new System.EventHandler(this.Page_Load);}
#endregion
}
}