为什么点击DataGrid中模版列的按钮要链接到另一页面的代码没运行 看看是事件没有运行还是Response.Redirect("详细商品信息.aspx");没有运行?跟踪一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵,不会是你的CommandName不是picture吧有可能的呀DataBind 方法应该不会引起这种反映 既然使用模板列,可以用ImageButton的OnClick事件如<ItemTemplate> <asp:ImageButton ImageUrl='<%# DataBinder.Eval(Container.DataItem,"Path")%>' OnClick="Redirect" CommandArgument="参数" runat="server" ID="ImageButton1"> </asp:ImageButton></ItemTemplate>//.csprotected void Redirect(object sender, EventArgs e){ string Url="详细商品信息.aspx?参数="+((ImageButton)sender).CommandArgument.ToString(); Response.Redirect(Url,true);} Page_Load里加上:if(!Page.IsPostBack){ //在这里面DataBind} 在Page_Load里BindData()的时候,一定要加上if(!IsPostBack){ BindData();}不然事件不会触发。因为控件事件在Page_Load之后,且控件的ViewState值要有变化,页面才会raise event handle。所以如果你每次Load都BindData()的话,对于页面来说检测不到控件状态的变化,所以你的event handle并不会被执行 我跟踪了是事件没有运行,CommandName确实没错,我也用了if(!IsPostBack){},都不行,希望各位继续关注。多谢! 那应该是事件句柄丢失了,看看InitializeComponent()里面有没有:this.DataGrid1.ItemCommand += new DataGridCommandEventHandler(this.DataGrid1_ItemCommand) 委托丢了,重新指定,在DataGrid的事件里面指定ItemCommand 事件为你的ItemCommand过程 谢谢各位,我的问题在大家的帮助下已经解决,而且找到了两种解决方案,一种就是chilin提供的方案,把上面的Redirect事件定义为:protected void Redirect(object sender, System.Web.UI.ImageClickEventArgs e)可以实现功能;还有一种是那可以把Redirect事件定义为:flyingbirddhp()提供的方案。分已发出来者有份,请不要介意多少!以后我有问题还会继续向各位请教,请多关注,十分感谢! asp.net 网站问题 url正则表达式判断问题 早上好.来提2个问题. QQ邮箱收不到邮件 xmliy 给您补80分,您能再深入谈一下js继承么 怎样取得html输入框的值? window.location.href=window.location.href这句话究竟什么意思? 将项目拷到另一台机器上就出现错误了,大家帮帮我啊。 急,怎么把数据源放到ViewState里面 ,brightheroes(闭关|那一剑的风情)曾经提示过我,可没有告诉我怎么用? 怎 如何往oracle中写入大文本 客户端的代码和服务器端怎么通讯?
有可能的呀
DataBind 方法应该不会引起这种反映
如
<ItemTemplate>
<asp:ImageButton ImageUrl='<%# DataBinder.Eval(Container.DataItem,"Path")%>' OnClick="Redirect" CommandArgument="参数" runat="server" ID="ImageButton1">
</asp:ImageButton>
</ItemTemplate>//.cs
protected void Redirect(object sender, EventArgs e)
{
string Url="详细商品信息.aspx?参数="+((ImageButton)sender).CommandArgument.ToString();
Response.Redirect(Url,true);
}
if(!Page.IsPostBack)
{
//在这里面DataBind
}
if(!IsPostBack)
{
BindData();
}
不然事件不会触发。因为控件事件在Page_Load之后,且控件的ViewState值要有变化,页面才会raise event handle。所以如果你每次Load都BindData()的话,对于页面来说检测不到控件状态的变化,所以你的event handle并不会被执行
this.DataGrid1.ItemCommand += new DataGridCommandEventHandler(this.DataGrid1_ItemCommand)
protected void Redirect(object sender, System.Web.UI.ImageClickEventArgs e)可以实现功能;还有一种是那可以把Redirect事件定义为:
flyingbirddhp()提供的方案。分已发出来者有份,请不要介意多少!以后我有问题还会继续向各位请教,请多关注,十分感谢!