DataGrid的模板列中使用了ImageButton,如何定义它的事件??事件可以不是标准事件么?? CommandName "Test"ItemCommand 事件处理函数事件处理函数{ if(e.commandName == "Test") { dosomething; }} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 响应的是datagrid的事件,你看看datagrid的冒泡事件就知道了。itemcommand等 <asp:datagrid id="dgdClass" Runat="server" Width="100%" AutoGenerateColumns="False" DataKeyField="classid"> <Columns> <asp:HyperLinkColumn DataNavigateUrlField="classid" HeaderText="班级名称" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataNavigateUrlFormatString="StudentInfo.aspx?classid={0}" DataTextField="classname"sS> </asp:HyperLinkColumn> </Columns> <Columns> <asp:BoundColumn DataField="username" HeaderText="班主任名称" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundColumn> </Columns> <Columns> <asp:BoundColumn DataField="startyear" HeaderText="入学时间" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundColumn> </Columns> <Columns> <asp:TemplateColumn HeaderText="状态" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:LinkButton CommandName="graduate" ID="btnStatus" Runat="server">未毕业</asp:LinkButton> </ItemTemplate> </asp:TemplateColumn> </Columns> <Columns> <asp:TemplateColumn HeaderText="编 辑" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:ImageButton ID="btnEdit" CommandName="edit" Runat="server" AlternateText="编 辑" ImageUrl="images\edit.gif"></asp:ImageButton> </ItemTemplate> </asp:TemplateColumn> </Columns> <Columns> <asp:TemplateColumn HeaderText="删 除" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:ImageButton ID="btnDelete" CommandName="delete" Runat="server" AlternateText="删 除" ImageUrl="images\del.gif"></asp:ImageButton> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid>Private Sub dgdClass_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgdClass.ItemCommand If Session("role") = "班主任" Or Session("role") = "浏览员" Then Exit Sub End If Dim classid As Int32 = dgdClass.DataKeys(e.Item.ItemIndex) If e.CommandName = "graduate" Then '这里要改变当前班级的状态,相应的学生的状态也需要改变。 Dim cmd As New SqlCommand("update class set status='已毕业'where classid=@classid", cnn) cmd.Parameters.Add("@classid", classid) Try cnn.Open() cmd.ExecuteNonQuery() Catch ex As Exception Response.Write(ex.Message) Finally cnn.Close() End Try GetData() ElseIf e.CommandName = "edit" Then Response.Redirect("ClassAdd.aspx?id=" + classid.ToString) ElseIf e.CommandName = "delete" Then Dim cmd As New SqlCommand("delete from class where classid=@classid", cnn) cmd.Parameters.Add("@classid", classid) Try cnn.Open() cmd.ExecuteNonQuery() Response.Redirect("ClassInfo.aspx") Catch ex As Exception Response.Write(ex.Message) Finally cnn.Close() End Try GetData() End If End Sub 在aspx的HTML的代码里面在指定的imagebutton模板列 找到想要的事件,假设为A,则增加如下代码<... A="DealASub" ...>在后代码里面即aspx.cs里面声明如下过程即可:protected void DealASub(object sender, EventArgs e) {...} To:lxcc(虫子)ImageButton是在DataGrid中的。谢谢大家,我基本上明白了,是我没理解ItemCommand。 .net中如何制作加好友 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) 全文的展开与收缩 高手请进:用存储过程编写的模糊查询出现奇怪的问题了!!! 最有挑战的问题: djvu图片无法读出到IE浏览器? GridView 分页自动隐藏问题 父子页面Page_Load方法调用的顺序。 请问如何取得网站的程序集名称 急~~如何用程序让IE窗口全屏,就像按F11的效果 https访问的问题 紧急求救!Win2000上IIS5跑aspx死掉。。。 IFRAME中窗体的变化。急
itemcommand等
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="classid" HeaderText="班级名称" HeaderStyle-BackColor="#5482af"
HeaderStyle-ForeColor="#ffffff" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"
DataNavigateUrlFormatString="StudentInfo.aspx?classid={0}" DataTextField="classname"sS> </asp:HyperLinkColumn>
</Columns>
<Columns>
<asp:BoundColumn DataField="username" HeaderText="班主任名称" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff"
HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundColumn>
</Columns>
<Columns>
<asp:BoundColumn DataField="startyear" HeaderText="入学时间" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff"
HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></asp:BoundColumn>
</Columns>
<Columns>
<asp:TemplateColumn HeaderText="状态" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff"
HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton CommandName="graduate" ID="btnStatus" Runat="server">未毕业</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<Columns>
<asp:TemplateColumn HeaderText="编 辑" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff"
HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="btnEdit" CommandName="edit" Runat="server" AlternateText="编 辑" ImageUrl="images\edit.gif"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<Columns>
<asp:TemplateColumn HeaderText="删 除" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#ffffff"
HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="btnDelete" CommandName="delete" Runat="server" AlternateText="删 除" ImageUrl="images\del.gif"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>Private Sub dgdClass_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgdClass.ItemCommand
If Session("role") = "班主任" Or Session("role") = "浏览员" Then
Exit Sub
End If Dim classid As Int32 = dgdClass.DataKeys(e.Item.ItemIndex)
If e.CommandName = "graduate" Then
'这里要改变当前班级的状态,相应的学生的状态也需要改变。
Dim cmd As New SqlCommand("update class set status='已毕业'where classid=@classid", cnn)
cmd.Parameters.Add("@classid", classid)
Try
cnn.Open()
cmd.ExecuteNonQuery()
Catch ex As Exception
Response.Write(ex.Message)
Finally
cnn.Close() End Try
GetData()
ElseIf e.CommandName = "edit" Then
Response.Redirect("ClassAdd.aspx?id=" + classid.ToString)
ElseIf e.CommandName = "delete" Then
Dim cmd As New SqlCommand("delete from class where classid=@classid", cnn)
cmd.Parameters.Add("@classid", classid)
Try
cnn.Open()
cmd.ExecuteNonQuery()
Response.Redirect("ClassInfo.aspx")
Catch ex As Exception
Response.Write(ex.Message)
Finally
cnn.Close() End Try
GetData() End If
End Sub
<... A="DealASub" ...>在后代码里面即aspx.cs里面声明如下过程即可:
protected void DealASub(object sender, EventArgs e)
{
...
}
ImageButton是在DataGrid中的。谢谢大家,我基本上明白了,是我没理解ItemCommand。