我使用属性生成器给datagrid添加了两个select列,也就是说每一条记录有两个select按钮,我想分别写onclick代码,怎么办呢? 我在html中看到这两个select按钮是属于datagrid的ButtonColumn,没有自己的id ,怎么办呢??谢谢各位大哥大姐了,我是新手
解决方案 »
- asp.net + sql server 2008
- 页面布局问题
- 如何动态添加控件到指定位置?
- update club set count=(count+1) where id="+id 说我语法语句错误
- 怎么用for each的方式循环下拉列表中的item的text
- 求好的树形选择解决办法~
- 请提示水晶报表10的下载地址,能下的,并且有注册码的.下载成功后立刻给分
- 请问如何在客户端实现入省份和所属市的对应变换
- 求教:为什么我的iis老罢工?
- 急!请教大侠:有关Regex.Replace()函数
- 各位大哥知道怎么查看服务器上每个端口吗
- 页面中有多个button按钮,我该怎么控制才能避免验证控件的验证??
switch(e.CommandName)
{
case "Select":
... case "Select2":
...
}
e.Item.Cells[i].Attributes.Add("onclick","javascript: return confirm('');");
看是不是你说的意思
我是在selectedindexchanged里面写的,e 只有empty和gettype两种方法哦 Private Sub DataGrid1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.SelectedIndexChanged
End Sub
的方法可以
不行啊,e 是哪个地方声明的??
你查找控件的时候根据它的CELL来查找
那么,机器就不会出错,而且会找到你希望找到的select列的空间
杂databound事件里面写的
foreach(Control con in e.Item.Cells[6].Controls)
{
if(con.ToString()=="System.Web.UI.WebControls.DataGridLinkButton")
{
System.Web.UI.WebControls.LinkButton lbtn=(System.Web.UI.WebControls.LinkButton)con;
lbtn.Attributes.Add("onclick", "return confirm('您确定删除该条记录吗?')");
}
}
别忘了实例一下哦
然后再DataGrid_OnCommandItem()事件里写代码!!
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemWebUIWebControlsDataGridClassItemCommandTopic.htm
<Columns>
<asp:ButtonColumn Text="选择" CommandName="Select1"></asp:ButtonColumn>
<asp:ButtonColumn Text="选择" CommandName="Select2"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="select1")
{
dosomething();
}
else if(e.CommandName=="select2")
{
dootherthing();
}
}
Select Case e.CommandName
Case "Select"
...
Case "Select2"
...
End Select End Sub
Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
If e.CommandName = "select" Then
label1.text="第一个按钮"
else
label1.text="第二个按钮"
End If End Sub
如果没有,下面有源代码<%@ Import Namespace="System.Data" %><html>
<script language="VB" runat="server"> Dim Cart As DataTable
Dim CartView As DataView Function CreateDataSource() As ICollection Dim dt As DataTable
Dim dr As DataRow
Dim i As Integer 'create a DataTable
dt = New DataTable
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime)))
dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double))) 'Make some rows and put some sample data in
For i = 1 To 9
dr = dt.NewRow()
dr(0) = i
dr(1) = "Item " & i.ToString()
dr(2) = DateTime.Now.ToShortTimeString
If (i Mod 2 <> 0) Then
dr(3) = True
Else
dr(3) = False
End If
dr(4) = 1.23 * (i + 1)
'add the row to the datatable
dt.Rows.Add(dr)
Next 'return a DataView to the DataTable
CreateDataSource = New DataView(dt) End Function Sub Page_Load(sender As Object, e As EventArgs) If Session("DG4VB_ShoppingCart") Is Nothing Then
Cart = New DataTable()
Cart.Columns.Add(new DataColumn("Item", GetType(string)))
Cart.Columns.Add(new DataColumn("Price", GetType(string)))
Session("DG4VB_ShoppingCart") = Cart
Else
Cart = Session("DG4VB_ShoppingCart")
End If
CartView = New DataView(Cart)
ShoppingCart.DataSource = CartView
ShoppingCart.DataBind If Not IsPostBack Then
' need to load this data only once
MyDataGrid.DataSource = CreateDataSource()
MyDataGrid.DataBind
End If
End Sub Sub Grid_CartCommand(sender As Object, e As DataGridCommandEventArgs) Dim dr As DataRow = Cart.NewRow() ' e.Item is the row of the table where the command fired
' For bound columns the value is stored in the Text property of TableCell
Dim itemCell As TableCell = e.Item.Cells(2)
Dim priceCell As TableCell = e.Item.Cells(3)
Dim item As String = itemCell.Text
Dim price As String = priceCell.Text If e.CommandSource.CommandName = "AddToCart" Then
dr(0) = item
dr(1) = price
Cart.Rows.Add(dr)
Else 'Remove from Cart CartView.RowFilter = "Item='" & item & "'"
If CartView.Count > 0 Then
CartView.Delete(0)
End If
CartView.RowFilter = ""
End If
ShoppingCart.DataBind() End Sub
</script><body> <h3><font face="Verdana">Using a ButtonColumn in DataGrid</font></h3> <form runat=server> <table cellpadding="5">
<tr valign="top"><td> <b>Product List</b>
<ASP:DataGrid id="MyDataGrid" runat="server"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AutoGenerateColumns="false"
OnItemCommand="Grid_CartCommand"
>
<Columns>
<asp:ButtonColumn HeaderText="Add to cart" Text="Add" CommandName="AddToCart" />
<asp:ButtonColumn HeaderText="Remove from cart" Text="Remove" CommandName="RemoveFromCart" />
<asp:BoundColumn HeaderText="Item" DataField="StringValue"/>
<asp:BoundColumn HeaderText="Price" DataField="CurrencyValue" DataFormatString="{0:c}" ItemStyle-HorizontalAlign="right" />
<asp:BoundColumn HeaderText="Assembly required?" DataField="BoolValue"/>
</Columns>
</asp:DataGrid> </td><td> <b>Shopping Cart</b>
<ASP:DataGrid id="ShoppingCart" runat="server"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
/> </td></tr>
</table> </form></body>
</html>