救命啊,datagrid按钮列问题。
我在 datagrid 上加了个按钮列
//添加选择列
ButtonColumn bc = new System.Web.UI.WebControls.ButtonColumn();
bc.HeaderText = "选择 ";
bc.CommandName = "Select ";
bc.Text = " <img border= '0 ' src= 'Images/view.gif ' /> ";
this.dag_Gateways.Columns.Add(bc);
再绑定,之前已经给定了数据源并添加了BoundColumn。
this.dag_Gateways.DataBind();
而且已经添加了selectedindexchanged事件了
this.dag_Gateways.SelectedIndexChanged += new System.EventHandler(this.dag_Gateways_SelectedIndexChanged);
为什么调试时点击这个按钮,不能执行这个事件,用itemcommand也不行生成的代码也是这样的
<a href= "javascript:__doPostBack( 'dag_Gateways$_ctl4$_ctl0 ', ' ') ">
<script language= "javascript ">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf( "netscape ") > -1) {
theform = document.forms[ "SendGateway "];
}
else {
theform = document.SendGateway;
}
theform.__EVENTTARGET.value = eventTarget.split( "$ ").join( ": ");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
//咋整啊
------解决方案--------------------你要实现什么功能?代码多了看的昏
------解决方案--------------------你要调用的是脚本事件,给它加onclick才行
------解决方案--------------------protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName = SelectComand)
{
GridView1.SelectedIndex = e.CommandSource;
//是不是这个意思?
}
}
------解决方案--------------------问题很清楚了,就是动态添加的按钮列没能触发dataGrid的SelectedIndexChanged
=========
不用喊了,没人救得了你 :P
很正常,即使是老鸟,对于动态添加动态也无法自由控制之 ....
建议不使用此方式
非要使用,建议先仔细阅读
创建动态数据输入用户界面
http://www.microsoft.com/china/msdn/library/webservices/asp.net/dnasppDynamicUI.mspx#ELC
------解决方案--------------------关键是要深刻理解 ASP.NEt 控件和页面事件生命周期 顺序