OnItemCommand 问题,为什么我的mydatagrid_OnItemCommand没有执行?

imagingboy 2003-10-16 07:12:09
<asp:datagrid id="GridSearchRs" style="Z-INDEX: 101; LEFT: 132px; POSITION: absolute; TOP: 69px" runat="server" Font-Size="Small" Width="247px" Height="150px" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="3" AllowSorting="True" OnItemCommand="GridSearchRs_ItemCommand">
<columns> <asp:TemplateColumn HeaderText="详细情况">
<ItemTemplate>
<asp:Button id="cmdInfo2" Runat="server" CommandName="Info2" Text="详情"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</columns>
</asp:datagrid>

后端:

void GridSearchRs_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Info2")
{
this.Label1.Text ="Info";
}

}
...全文
32 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffeewar 2003-10-16
  • 打赏
  • 举报
回复
不是注册的问题,其实很简单,只要在 Page_Load里加入IsPostBack一切搞定.
或者<asp:button>改成<asp:buttonColumn ButtonType=LinkButton>
  • 打赏
  • 举报
回复
简单,在后台代码你没有注册处理事件的委托,
如果你使用的是楼上的vb.net,那么简单,只要写一句
Sub OnItemCreated1(sender as Object,e as DataGridItemEventArgs) Handdler MyDataGrid.ItemCreated
即可。
但是你使用的是C#,那么必须得在页面初始化的时候加入事件处理程序的注册代码,否则它是不会执行的。注册方法如下:
打开后台代码,在vs.net自动生成代码的“窗体设计器代码”(就是vs.net自动隐藏起来的那个),有个方法private void InitializeComponent(),里面有一行代码是这样的:
this.Load += new EventHandler(Page_Load);
你在下面加上
this.MyDataGrid.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.MyDataGrid_ItemCreated);

然后你再写
void GridSearchRs_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
就可以使用了。
gengwei80 2003-10-16
  • 打赏
  • 举报
回复
Sub OnItemCreated1(sender as Object,e as DataGridItemEventArgs)
RegisterClientCode()
e.item.Cells(0).visible=false
Dim fid as String
fid = e.item.Cells(0).Text
e.Item.Attributes("OnMouseOver")="javascript:bgColor='dddddd';"
e.Item.Attributes("OnMouseout")="javascript:bgColor='eeeeee';"
End Sub
<ASP:DataGrid id="MyDataGrid" runat="server"
width=100%
AllowPaging="True"
AutoGenerateColumns="true"
PageSize="6"
PagerStyle-Mode="NumericPages"
PagerStyle-HorizontalAlign="Right"
OnPageIndexChanged="MyDataGrid_Page"
BorderColor="black"
BorderWidth="1"
GridLines="both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
OnItemDataBound="OnItemCreated1"
HeaderStyle-BackColor="#c0c0c0"
style="cursor:hand;">
<PagerStyle Visible="False" />
</asp:DataGrid>

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧