显示一切正常,就是没有捕捉得到它的事件?各位大虾帮帮忙,在此先谢了……
代码如下:
public void CreateGridColumn(DataGrid OperationDataGrid)
{
ButtonColumn NewButCol = new ButtonColumn() ;
NewButCol.Text = "编辑" ;
NewButCol.HeaderText = "操作" ;
NewButCol.CommandName = "Edit" ;
NewButCol.ButtonType = ButtonColumnType.LinkButton ;
NewButCol.Visible = true ;
OperationDataGrid.Columns.Add(NewButCol) ;
}private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TextBox1.Text = "已响应" ; //没有执行到此
}
代码如下:
public void CreateGridColumn(DataGrid OperationDataGrid)
{
ButtonColumn NewButCol = new ButtonColumn() ;
NewButCol.Text = "编辑" ;
NewButCol.HeaderText = "操作" ;
NewButCol.CommandName = "Edit" ;
NewButCol.ButtonType = ButtonColumnType.LinkButton ;
NewButCol.Visible = true ;
OperationDataGrid.Columns.Add(NewButCol) ;
}private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TextBox1.Text = "已响应" ; //没有执行到此
}
解决方案 »
- 请问:这时什么文件?
- vs2005重置工具箱devexpress组件在工具箱没有了
- 控件重叠问题,怎么设置label的背景色
- 两个datatable的更新
- Winform TextBox输入框,发送邮件,输入邮箱地址,怎么判断输入的邮件地址是否正确?
- 请问如何判断数据库是否存在的问题,谢谢!
- 乱码,错在哪里?
- 借用这里的人气,install shield的问题,高手快来
- 高分求解:水晶报表怎样做页合计?
- C##################!!关于vc有而c#中没有的一些功能的问题请教!!########################C
- 为什么我的PrintDocument在PrintPreviewDialog中预览是多页的,在打印的时候就只打印了最后一页呢???
- 文件下载
{
...
}private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
...
}
中追加
this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);
DataGrid 不是动态建的,它的把有列是态动建的,
this.DataGrid1.ItemCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler (this.DataGrid1_ItemCommand);
应该是 DataGrid 的事件吧,不是它列的事件吧! AutoPost = true 我没找到是哪个带有,
DataGrid 好象没有带,ButtonColumn 列好象也没有带。
所以只能动态创建列。比如
在商品中,如果是查水果: 显示:品名,产地,品质
家电: 显示:品名,厂家,规格,型号
.
.
.
private void BindData()
{
try
{
this.tr_blink.Visible = true;
this.tr_detail.Visible = false; DataTable detailInfo = null; // Not Found in Sessoin
// We research the result
if( this.Session["dsp_EnqTransFares_Head"] == null || this.Session["dsp_EnqTransFares_Detail"] == null )
{
// First intialize the page
if( this.hid_SelectValue.Value == string.Empty )
{
return;
}
else
{
EnqTransFaresDB fareDB = new EnqTransFaresDB( this.UserInfo.LangCode );
detailInfo = fareDB.GetFareInfo( this.hid_SelectValue.Value , this.UserInfo.CompCode , DateTime.Parse(hid_EffiveDate.Value) );
this.Session["dsp_EnqTransFares_Detail"] = detailInfo;
}
}
else
{
detailInfo = (DataTable)this.Session["dsp_EnqTransFares_Detail"];
} detailInfo.DefaultView.Sort = this.hid_SortField.Value + this.hid_SortType.Value;
DataView detailView = detailInfo.DefaultView; this.dg_FareHead.DataSource = detailView;
this.dg_FareHead.DataBind(); // Build DataGrid Dynamically
// Remove All existed Columns
while( this.dg_FareDetail.Columns.Count != 0 )
{
this.dg_FareDetail.Columns.RemoveAt(0);
} // Add columns according to the dateSource
// start from NO.1 , skip the first column (Destination)
for( int i = 1 ; i < detailInfo.Columns.Count ; i ++ )
{
BoundColumn column = new BoundColumn();// TextBox txtbox = new TextBox();
// TemplateColumn tem = new TemplateColumn();
// tem.ItemTemplate.InstantiateIn(txtbox ); column.DataField = detailInfo.Columns[i].ColumnName;
column.HeaderText = detailInfo.Columns[i].ColumnName;
column.SortExpression = detailInfo.Columns[i].ColumnName;
column.DataFormatString = "{0:n2}"; column.HeaderStyle.Wrap = false;
column.HeaderStyle.Font.Underline = true;
column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; dg_FareDetail.Columns.Add(column);
} dg_FareDetail.DataSource = detailInfo;
dg_FareDetail.DataBind(); // Reset DataGrid Color
foreach( DataGridItem dgi in dg_FareDetail.Items )
{
for( int i = 0 ; i < dgi.Cells.Count ; i ++ )
{
// start from NO.1 , skip the first column (Destination)
if( detailView[dgi.ItemIndex][i+1].ToString() == string.Empty )
{
// Using Grey Color
dgi.Cells[i].BackColor = Color.FromArgb(221,221,221);
}
}
} this.tr_blink.Visible = false;
this.tr_detail.Visible = true;
}
catch( ApplicationException ex )
{
ComLogOutput.WriteLogFile(ex);
this.lbl_Err.Text = ex.Message;
}
catch( Exception ex )
{
ComLogOutput.WriteLogFile(ex);
}
}
我做WEB的时候常常有一些不响应事件的按钮,在编辑模式下双击它后转到代码,再编译就能通过.在两台电脑上都过这种事,大家有没有这种情况?
this.DataGridPage.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGridPage_EditCommand);
this.dgBoards.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgBoards_ItemCommand);
也删了
然后回到aspx页,选中DataGrid,在属性框里找到ItemCommand,双击右边空白处的单元格,会自动添加ItemCommand事件,然后重新写代码.
我用一静态列来做操作列,当要动态生成新列时要清除DataGrid 的列时,
就只清除其它列,不清除静态列,这样静态列它会一直保留着,响应事件也没有改变。
这是没有办法中的办法,有空再去研究用动态列做操作列。
================================================================
此帖通过csdn小助手回复。
CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,它能够在
脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
快,产生的流量更小。 下载地址:http://qqwwee.com/csdn.rar
================================================================
http://blog.joycode.com/saucer/archive/2005/08/03/61488.aspx
昨天不是没有看,只是时间比较紧,没有看完……
所以为了应急,先用了另一种方法,呵呵……
再次表示感谢……