我写了这么一些代码
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
dt=LoadData();
if(!IsPostBack)
{
temp="";
DataRow dr;
for(int i=0;i<6;i++)
{
dr=dt.NewRow();
dr["Num"]=i;
dr["Name"]="书名"+i.ToString();
dr["DtTm"]=DateTime.Now.ToShortTimeString();
if((i%2)!=0)
{
dr["Assembly"]=true;
}
else
{
dr["Assembly"]=false;
} dr["Price"]=1.11*i; dt.Rows.Add(dr);
}
DataGrid1.DataSource=dt.DefaultView;
DataGrid1.DataBind();
}
if(Session["dt"]==null)
{
Session["dt"]=dt;
}
else
{
dt=(DataTable)Session["dt"];
}
/*if(temp=="addevent")
{
DataGridItem item=DataGrid1.SelectedItem;
TextBox NumBox=(TextBox)Convert.ChangeType(item.Cells[0].FindControl("NumBox"),typeof(TextBox));
NumBox.TextChanged+=new System.EventHandler(this.TextBox1_TextChanged);
}*/
}
private void TextBox1_TextChanged(object sender, System.EventArgs e)
{
Response.Write("aaaaaa");
} private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Select")
{
DataGrid1.EditItemIndex=e.Item.ItemIndex;
DataGrid1.DataSource=dt.DefaultView;
DataGrid1.DataBind();
//temp="addevent";
//TextBox NumBox=(TextBox)Convert.ChangeType(e.Item.Cells[0].FindControl("NumBox"),typeof(TextBox));
//NumBox.TextChanged+=new System.EventHandler(this.TextBox1_TextChanged); }
}
private void DataGrid1_PreRender(object sender, System.EventArgs e)
{
if(DataGrid1.EditItemIndex!=-1)
{
DataGridItem item=DataGrid1.SelectedItem;
TextBox NumBox=(TextBox)Convert.ChangeType(item.Cells[0].FindControl("NumBox"),typeof(TextBox));
//NumBox.Attributes.Add("TextChanged","TextBox1_TextChanged");
NumBox.TextChanged+=new System.EventHandler(this.TextBox1_TextChanged);
//temp="";
}
}
目的是为了在datagrid选中一行之后该行变成编辑模式,行中的label变成textbox,我现在想在textbox里添加事件,现在的问题是事件是可以添加进去,但是reload一次之后,事件又没了,请问该如何解决?
事件添加流程是这样的:
第一次加载页面->选择一行->该行变成编辑模式(ItemCommand事件触发)->给textbox添加事件(preRender事件触发)->textbox输入内容,回车->page reload,textbox事件丢失,web上没反应!
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
dt=LoadData();
if(!IsPostBack)
{
temp="";
DataRow dr;
for(int i=0;i<6;i++)
{
dr=dt.NewRow();
dr["Num"]=i;
dr["Name"]="书名"+i.ToString();
dr["DtTm"]=DateTime.Now.ToShortTimeString();
if((i%2)!=0)
{
dr["Assembly"]=true;
}
else
{
dr["Assembly"]=false;
} dr["Price"]=1.11*i; dt.Rows.Add(dr);
}
DataGrid1.DataSource=dt.DefaultView;
DataGrid1.DataBind();
}
if(Session["dt"]==null)
{
Session["dt"]=dt;
}
else
{
dt=(DataTable)Session["dt"];
}
/*if(temp=="addevent")
{
DataGridItem item=DataGrid1.SelectedItem;
TextBox NumBox=(TextBox)Convert.ChangeType(item.Cells[0].FindControl("NumBox"),typeof(TextBox));
NumBox.TextChanged+=new System.EventHandler(this.TextBox1_TextChanged);
}*/
}
private void TextBox1_TextChanged(object sender, System.EventArgs e)
{
Response.Write("aaaaaa");
} private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Select")
{
DataGrid1.EditItemIndex=e.Item.ItemIndex;
DataGrid1.DataSource=dt.DefaultView;
DataGrid1.DataBind();
//temp="addevent";
//TextBox NumBox=(TextBox)Convert.ChangeType(e.Item.Cells[0].FindControl("NumBox"),typeof(TextBox));
//NumBox.TextChanged+=new System.EventHandler(this.TextBox1_TextChanged); }
}
private void DataGrid1_PreRender(object sender, System.EventArgs e)
{
if(DataGrid1.EditItemIndex!=-1)
{
DataGridItem item=DataGrid1.SelectedItem;
TextBox NumBox=(TextBox)Convert.ChangeType(item.Cells[0].FindControl("NumBox"),typeof(TextBox));
//NumBox.Attributes.Add("TextChanged","TextBox1_TextChanged");
NumBox.TextChanged+=new System.EventHandler(this.TextBox1_TextChanged);
//temp="";
}
}
目的是为了在datagrid选中一行之后该行变成编辑模式,行中的label变成textbox,我现在想在textbox里添加事件,现在的问题是事件是可以添加进去,但是reload一次之后,事件又没了,请问该如何解决?
事件添加流程是这样的:
第一次加载页面->选择一行->该行变成编辑模式(ItemCommand事件触发)->给textbox添加事件(preRender事件触发)->textbox输入内容,回车->page reload,textbox事件丢失,web上没反应!
解决方案 »
- .net前台循环显示的问题,大家来拍砖啊!
- 问一个问题,ASP.NET网站,如果做成全静态的,用什么方法比较好?
- 怎么用asp.net把从mysql里读出的regdate(原来是int型的)字段转换成datetime型的?
- GridView生成Excel 问题
- 找不到类型或命名空间名称“ScriptService”(是否缺少 using 指令或程序集引用?)
- 项目转成2005
- 用这两种数据更新哪个效率更高?
- 部门树加载
- TreeView闪烁的问题,如何解决?
- 收集asp.net fan的msn passport email地址我的是[email protected]全天在线(加入者皆有分)
- DataGrid模板编辑列中的下拉控件如何绑定数据库?
- 菜鸟虚心请教:datagrid排序问题
MSDN WebCast 讲座下载(Datagrid高级使用技巧)