Hey all,
I'm trying to get the selected item (only the selected item) to have a backcolor of cyan. However, the problem is that I can't use the commandname="Select" method because I've already assigned the commandname property to another command. Here's the code:
<asp:datagrid id="dgMMCTRN3" style="Z-INDEX: 101; LEFT: 15px; POSITION: absolute; TOP: 27px" runat="server" AutoGenerateColumns="False" GridLines="None" Height="73px" Width="219px" OnItemCommand="dg_ItemCommand" DataKeyField="ID" OnItemDataBound="dtgMMCTRN3_ItemDataBound" ShowFooter="True">
<SelectedItemStyle Font-Bold="True" BackColor="#FF8080"></SelectedItemStyle>
<AlternatingItemStyle BackColor="AliceBlue"></AlternatingItemStyle>
<HeaderStyle Font-Bold="True" BackColor="SkyBlue"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<u>Link</u>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="lb1" CommandName="doProds" Runat="server" Text='<%# Container.DataItem("MCCSUM" %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn CommandName="Select" DataTextField="MCCTYP" HeaderText="Typ" HeaderStyle-Font-Underline="True"></asp:ButtonColumn>
AND THE CODE BEHIND IS:
Sub dg_ItemCommand(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim mo, trn As Double
Dim acct As String
mo = CDbl(Request.QueryString("postDat")
trn = CDbl(Session("LastPost")
acct = Request.QueryString("acct"
If e.CommandName = "doProds" Then
sProduct = CType(e.Item.FindControl("lb1", LinkButton).Text
Dim intID As String = dgMMCTRN3.DataKeys(e.Item.ItemIndex)
Dim strSQLDet As String
strSQLDet = "select MCNRRN, MCCSUM, MCCTYP, MCCTRN, MCAJE, MCFDPT, MCFDBT, MCFCRD, CONCAT(CHAR(MCCSUM),CONCAT(MCCTYP,MCCTRN)) AS ID " & _
"from P12582.MMCTRN3 " & _
"where MCFDBT = '" & acct & "' AND MCDGLM = " & mo & " AND MCDTRN = " & trn & " AND CONCAT(CHAR(MCCSUM),CONCAT(MCCTYP,MCCTRN)) ='" & dgMMCTRN3.DataKeys(e.Item.ItemIndex) & "' AND MCFPAG = '1' " & _
"or MCFCRD = '" & acct & "' AND MCDGLM = " & mo & " AND MCDTRN = " & trn & " AND CONCAT(CHAR(MCCSUM),CONCAT(MCCTYP,MCCTRN)) ='" & dgMMCTRN3.DataKeys(e.Item.ItemIndex) & "' AND MCFPAG = '1' "
Dim dr As OleDbDataReader
dr = GetDataReader(strSQLDet)
e.Item.BackColor = Color.Red
dgDetails.DataSource = dr
dgDetails.DataBind()
dr.Close()
End If
End Sub
The item changes to red, but then when another item is selected, the first item retains the backcolor of red
I'm trying to get the selected item (only the selected item) to have a backcolor of cyan. However, the problem is that I can't use the commandname="Select" method because I've already assigned the commandname property to another command. Here's the code:
<asp:datagrid id="dgMMCTRN3" style="Z-INDEX: 101; LEFT: 15px; POSITION: absolute; TOP: 27px" runat="server" AutoGenerateColumns="False" GridLines="None" Height="73px" Width="219px" OnItemCommand="dg_ItemCommand" DataKeyField="ID" OnItemDataBound="dtgMMCTRN3_ItemDataBound" ShowFooter="True">
<SelectedItemStyle Font-Bold="True" BackColor="#FF8080"></SelectedItemStyle>
<AlternatingItemStyle BackColor="AliceBlue"></AlternatingItemStyle>
<HeaderStyle Font-Bold="True" BackColor="SkyBlue"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<u>Link</u>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="lb1" CommandName="doProds" Runat="server" Text='<%# Container.DataItem("MCCSUM" %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn CommandName="Select" DataTextField="MCCTYP" HeaderText="Typ" HeaderStyle-Font-Underline="True"></asp:ButtonColumn>
AND THE CODE BEHIND IS:
Sub dg_ItemCommand(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim mo, trn As Double
Dim acct As String
mo = CDbl(Request.QueryString("postDat")
trn = CDbl(Session("LastPost")
acct = Request.QueryString("acct"
If e.CommandName = "doProds" Then
sProduct = CType(e.Item.FindControl("lb1", LinkButton).Text
Dim intID As String = dgMMCTRN3.DataKeys(e.Item.ItemIndex)
Dim strSQLDet As String
strSQLDet = "select MCNRRN, MCCSUM, MCCTYP, MCCTRN, MCAJE, MCFDPT, MCFDBT, MCFCRD, CONCAT(CHAR(MCCSUM),CONCAT(MCCTYP,MCCTRN)) AS ID " & _
"from P12582.MMCTRN3 " & _
"where MCFDBT = '" & acct & "' AND MCDGLM = " & mo & " AND MCDTRN = " & trn & " AND CONCAT(CHAR(MCCSUM),CONCAT(MCCTYP,MCCTRN)) ='" & dgMMCTRN3.DataKeys(e.Item.ItemIndex) & "' AND MCFPAG = '1' " & _
"or MCFCRD = '" & acct & "' AND MCDGLM = " & mo & " AND MCDTRN = " & trn & " AND CONCAT(CHAR(MCCSUM),CONCAT(MCCTYP,MCCTRN)) ='" & dgMMCTRN3.DataKeys(e.Item.ItemIndex) & "' AND MCFPAG = '1' "
Dim dr As OleDbDataReader
dr = GetDataReader(strSQLDet)
e.Item.BackColor = Color.Red
dgDetails.DataSource = dr
dgDetails.DataBind()
dr.Close()
End If
End Sub
The item changes to red, but then when another item is selected, the first item retains the backcolor of red