(高分求解:在线等待)DataGrid的SelectedIndexChanged无法执行 不在同一个目录下面,MyDataGrid放在common目录下,WebForm1.aspx放在另外一个目录下,这样会有问题吗,一般公用的东西都放在另外一个目录下啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也是了一下,没发现有什么问题!代码如下:/// <summary> /// WebCustomControl1 的摘要说明。 /// </summary> public class WebCustomControl1 : System.Web.UI.WebControls.DataGrid { protected override void OnSelectedIndexChanged(EventArgs e) { base.OnSelectedIndexChanged (e); } }namespace WebApplication1{ /// <summary> /// WebForm1 的摘要说明。 /// </summary> public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid1; protected WebControlLibrary1.WebCustomControl1 WebCustomControl11; private void Page_Load(object sender, System.EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("AAA"); dt.Rows.Add(new object[] { "a" }); dt.Rows.Add(new object[] { "b" }); dt.Rows.Add(new object[] { "c" }); dt.Rows.Add(new object[] { "d" }); this.DataGrid1.DataSource = dt; this.DataGrid1.DataBind(); this.WebCustomControl11.DataSource = dt; this.WebCustomControl11.DataBind(); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexChanged); this.WebCustomControl11.SelectedIndexChanged += new System.EventHandler(this.WebCustomControl11_SelectedIndexChanged); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("1"); } private void WebCustomControl11_SelectedIndexChanged(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("2"); } }} 多谢楼上的,发现问题所在,缺少了 base.OnSelectedIndexChanged(e)语句。 可是如果控件放在WebUserControl.ascx里面还是不行啊!! 自己搞定了,原因是DataGrid如果放在ascx中,每行的编码格式与放在aspx中不同,多增加了ascx控件的ID。 多谢各位,散分。 assembly的相对路径是怎么确定的? 关于C#实现自定义文件的问题 即自己构造文件结构 SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间 问两个简单的问题 想要《XML学习指南》这本书,有的提供一下! GJJ:这2个存储语句怎么都错了?怎么改正? 寻找更好用的gridview 关于邮件附件下载的问题。。。。 vs2003 中文正式版在哪可以下载。 关于DataSet和数据源的一个问题 如果实现treeview自动隐藏的功能? 如何才能得到HtmlTable表格中某行某列的值!
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
public class WebCustomControl1 : System.Web.UI.WebControls.DataGrid
{
protected override void OnSelectedIndexChanged(EventArgs e) {
base.OnSelectedIndexChanged (e);
} }namespace WebApplication1
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected WebControlLibrary1.WebCustomControl1 WebCustomControl11;
private void Page_Load(object sender, System.EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("AAA");
dt.Rows.Add(new object[] { "a" });
dt.Rows.Add(new object[] { "b" });
dt.Rows.Add(new object[] { "c" });
dt.Rows.Add(new object[] { "d" }); this.DataGrid1.DataSource = dt;
this.DataGrid1.DataBind(); this.WebCustomControl11.DataSource = dt;
this.WebCustomControl11.DataBind();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexChanged);
this.WebCustomControl11.SelectedIndexChanged += new System.EventHandler(this.WebCustomControl11_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) {
System.Diagnostics.Debug.WriteLine("1");
} private void WebCustomControl11_SelectedIndexChanged(object sender, System.EventArgs e) {
System.Diagnostics.Debug.WriteLine("2");
}
}
}
base.OnSelectedIndexChanged(e)语句。
可是如果控件放在WebUserControl.ascx里面还是不行啊!!
多谢各位,散分。