Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

DataList expand, then minimize issues

Status
Not open for further replies.

BG12424

Programmer
Jun 4, 2002
717
US
I have a DataList control that I am expanding when an item is selected, using the SelectedItemTemplate. No problem!

The problem is when I want to create the functionality to "Un-select" it, so when the user clicks on let's say "minimize", then the formatting that was selected before will disappear and the original layout will return. How can I get this to work using the codebase below. I am racking my brain on this one. I had it working last night, I think. It was a late one for me, so I could have been seeing things.

Please excuse the fact that I don't have my webcontrols in the EditItemTemplate. I still need to do this. Thanks


[bold]VB file[/bold]
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If IsPostBack = False Then
GetData()
End If

End Sub

Sub GetData()

Dim o_Pipe As New NewLeafTech.Projects.Pipeline()
dlPipeline.DataSource = o_Pipe.GetPipelineAll
DataBind()

End Sub

Sub dlPipeline_ItemCommand(ByVal Sender As Object, ByVal e As DataListCommandEventArgs)

dlPipeline.SelectedIndex = e.Item.ItemIndex
dlPipeline.EditItemIndex = -1
GetData()

End Sub

Sub dlPipeline_EditCommand(ByVal Sender As Object, ByVal e As DataListCommandEventArgs)

dlPipeline.EditItemIndex = e.Item.ItemIndex
GetData()

End Sub

Sub dlPipeline_CancelCommand(ByVal Sender As Object, ByVal e As DataListCommandEventArgs)

dlPipeline.EditItemIndex = -1
GetData()

End Sub

Sub dlPipeline_UpdateCommand(ByVal Sender As Object, ByVal e As DataListCommandEventArgs)

'put logic here to update database
GetData()

End Sub

Sub dlPipeline_DeleteCommand(ByVal Sender As Object, ByVal e As DataListCommandEventArgs)

Dim o_Pipe As New NewLeafTech.Projects.Pipeline()
o_Pipe.PrimaryKey = dlPipeline.DataKeys(e.Item.ItemIndex)

If o_Pipe.DeletePipeline Then
GetData()
End If

End Sub



[bold]ASPX code:[/bold]

<form id=&quot;Form1&quot; method=&quot;post&quot; runat=&quot;server&quot;>
<table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; align=&quot;center&quot;>
<tr>
<td bgcolor=&quot;#FFFFFF&quot; width=&quot;25%&quot;>&nbsp;</td>
<td width=&quot;50%&quot; align=&quot;left&quot; bgcolor=&quot;#FFFFFF&quot;>
<IMG SRC=&quot;NLTHeader800x90_Pipeline.gif&quot; width=&quot;800&quot; height=&quot;90&quot; border=&quot;0&quot; alt=&quot;New Leaf Technologies&quot; />
</td>
<td bgcolor=&quot;#FFFFFF&quot; width=&quot;25%&quot;>&nbsp;</td>
</tr>
<tr>
<td bgcolor=&quot;#FFFFFF&quot; width=&quot;25%&quot;>&nbsp;<asp:Label ID=&quot;lblMessage&quot; Runat=&quot;server&quot;></asp:Label></td>
<td align=&quot;center&quot; width=&quot;50%&quot; bgcolor=&quot;#FFFFFF&quot;>
<asp:DataList
ID=&quot;dlPipeline&quot;
Runat=&quot;server&quot;
OnItemCommand=&quot;dlPipeline_ItemCommand&quot;
OnEditCommand=&quot;dlPipeline_EditCommand&quot;
OnCancelCommand=&quot;dlPipeline_CancelCommand&quot;
OnUpdateCommand=&quot;dlPipeline_UpdateCommand&quot;
OnDeleteCommand=&quot;dlPipeline_DeleteCommand&quot;
DataKeyField=&quot;Pipe_ID&quot;>

<ItemTemplate>
<asp:LinkButton ID=&quot;lbtEdit&quot; Runat=&quot;server&quot; Text='<%# Container.DataItem(&quot;Company&quot;) %>'></asp:LinkButton>
</ItemTemplate>

<EditItemTemplate>
EDIT MODE
<div id=&quot;divPipe&quot; class=&quot;box&quot; runat=&quot;server&quot; align=center>
<table border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;3&quot; bgcolor=&quot;#EEEEEE&quot;>
<tr>
<td colspan=&quot;4&quot;>Pipeline Details for <b><font color=#FF8800&quot;>
<%# Container.DataItem(&quot;Company&quot;) %></font></b> entered on <b>
<%# Container.DataItem(&quot;Entry_Date&quot;) %>
</b>.
</td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Status:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Status&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Name:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;FollowUp_Name&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Stage:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Stage&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Number:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;FollowUp_Number&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Client Name:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Client&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Email:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><a href=&quot;mailto:<%# Container.DataItem(&quot;FollowUp_Email&quot;) %>&quot;><%# Container.DataItem(&quot;FollowUp_Email&quot;) %></a></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Type of Work:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;TypeOfWork&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Date:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;FollowUp_Date&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Duration:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Duration&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Next Meeting Date:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Next_Mtg_Date&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Rate:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Rate&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Generated Work?</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Got_Work&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Start Date:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Start_Date&quot;)%></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Technologies Utilized:</td></tr>
<tr><td width=&quot;750&quot; colspan=&quot;4&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Technologies&quot;) %></td></tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Conditions:</td>
<tr><td width=&quot;750&quot; colspan=&quot;4&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Conditions&quot;) %></td></tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Work Order Details:</td></tr>
<tr><td width=&quot;750&quot; class=&quot;values&quot; colspan=&quot;4&quot;><%# Container.DataItem(&quot;Work_Details&quot;) %></td></tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Next Steps:</td></tr>
<tr><td width=&quot;750&quot; class=&quot;values&quot; colspan=&quot;4&quot;><%# Container.DataItem(&quot;Next_Steps&quot;) %></td></tr>
</table>
</div>
<div id=&quot;divPipeTools&quot; class=&quot;tools&quot; runat=&quot;server&quot; align=&quot;left&quot;>
<table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;798&quot; bgcolor=&quot;#666666&quot;>
<tr>
<td align=center height=&quot;100%&quot; align=center valign=bottom>
<asp:LinkButton ID=&quot;btCancel&quot; Runat=server Width=&quot;150&quot; BackColor=&quot;#FF8800&quot; Text=&quot;Cancel&quot; CommandName=&quot;cancel&quot;></asp:LinkButton>&nbsp;
<asp:LinkButton ID=&quot;btUpdate&quot; Runat=server Width=&quot;150&quot; BackColor=&quot;#FF8800&quot; Text=&quot;Update&quot; CommandName=&quot;update&quot;></asp:LinkButton>&nbsp;
<asp:LinkButton ID=&quot;btDelete&quot; Runat=server Width=&quot;150&quot; BackColor=&quot;#FF8800&quot; Text=&quot;Delete&quot; CommandName=&quot;delete&quot;></asp:LinkButton>&nbsp;
<asp:LinkButton ID=&quot;Linkbutton2&quot; Runat=server Width=&quot;150&quot; BackColor=&quot;#FF8800&quot; Text=&quot;Minimize&quot;></asp:LinkButton>
</td>
</tr>
</table>
</div>
</EditItemTemplate>

<SelectedItemTemplate>
SELECT MODE
<div id=&quot;Div1&quot; class=&quot;box&quot; runat=&quot;server&quot; align=center>
<table border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;3&quot; bgcolor=&quot;#EEEEEE&quot;>
<tr>
<td colspan=&quot;4&quot;>Pipeline Details for <b><font color=#FF8800&quot;>
<%# Container.DataItem(&quot;Company&quot;) %></font></b> entered on <b>
<%# Container.DataItem(&quot;Entry_Date&quot;) %>
</b>.
</td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Status:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Status&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Name:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;FollowUp_Name&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Stage:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Stage&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Number:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;FollowUp_Number&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Client Name:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Client&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Email:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><a href=&quot;mailto:<%# Container.DataItem(&quot;FollowUp_Email&quot;) %>&quot;><%# Container.DataItem(&quot;FollowUp_Email&quot;) %></a></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Type of Work:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;TypeOfWork&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Follow Up Date:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;FollowUp_Date&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Duration:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Duration&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Next Meeting Date:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Next_Mtg_Date&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Rate:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Rate&quot;) %></td>
<td width=&quot;150&quot; class=&quot;head&quot;>Generated Work?</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Got_Work&quot;) %></td>
</tr>
<tr>
<td width=&quot;150&quot; class=&quot;head&quot;>Start Date:</td>
<td width=&quot;250&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Start_Date&quot;)%></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Technologies Utilized:</td></tr>
<tr><td width=&quot;750&quot; colspan=&quot;4&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Technologies&quot;) %></td></tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Conditions:</td>
<tr><td width=&quot;750&quot; colspan=&quot;4&quot; class=&quot;values&quot;><%# Container.DataItem(&quot;Conditions&quot;) %></td></tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Work Order Details:</td></tr>
<tr><td width=&quot;750&quot; class=&quot;values&quot; colspan=&quot;4&quot;><%# Container.DataItem(&quot;Work_Details&quot;) %></td></tr>
<tr><td width=&quot;750&quot; class=&quot;head&quot; colspan=&quot;4&quot;>Next Steps:</td></tr>
<tr><td width=&quot;750&quot; class=&quot;values&quot; colspan=&quot;4&quot;><%# Container.DataItem(&quot;Next_Steps&quot;) %></td></tr>
</table>
</div>
<div id=&quot;Div2&quot; class=&quot;tools&quot; runat=&quot;server&quot; align=&quot;left&quot;>
<table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;798&quot; bgcolor=&quot;#666666&quot;>
<tr>
<td align=center height=&quot;100%&quot; align=center valign=bottom>
<asp:LinkButton ID=&quot;Linkbutton3&quot; Runat=server Width=&quot;150&quot; BackColor=&quot;#FF8800&quot; Text=&quot;Minimize&quot;></asp:LinkButton>&nbsp;
<asp:LinkButton ID=&quot;Button1&quot; Runat=server Width=&quot;150&quot; BackColor=&quot;#FF8800&quot; Text=&quot;Edit&quot; CommandName=&quot;edit&quot;></asp:LinkButton>&nbsp;
<asp:LinkButton ID=&quot;Linkbutton1&quot; Runat=server Width=&quot;150&quot; BackColor=&quot;#FF8800&quot; Text=&quot;Cancel&quot; CommandName=&quot;cancel&quot;></asp:LinkButton>&nbsp;
</td>
</tr>
</table>
</div>
</SelectedItemTemplate>

<SeparatorTemplate>
<p />
</SeparatorTemplate>
</asp:DataList>
</td>
<td bgcolor=&quot;#FFFFFF&quot; width=&quot;25%&quot;>&nbsp;</td>
</tr>
</table>
</form> regards,
Brian
 
To return the datalist to the original state, just set the itemIndex (edit,select, etc...) back to -1, which is its original state
penny1.gif
penny1.gif

The answer to getting answered -- faq855-2992
 
Where do I do this at though? What is the syntax for this? Thanks regards,
Brian
 
Well, let's say, for argument's sake, that the way you expand it is to put the datalist into edit mode, thereby setting

datalist.edititemindex = someIndexValue
'and then:
bindList()

Then all you need to do is decide what the user will click on to collapse the list, wire an event to that button, and:

datalist.edititemindex = -1
'and don't forget:
bindList()
penny1.gif
penny1.gif

The answer to getting answered -- faq855-2992
 
Never mind link9, I asked too soon. My apologies. Thanks for the help on this. I did the following and it works now:

Sub dlPipeline_ItemCommand(ByVal Sender As Object, ByVal e As DataListCommandEventArgs)

If e.CommandName = &quot;unselect&quot; Then
dlPipeline.SelectedIndex = -1
Else
dlPipeline.SelectedIndex = e.Item.ItemIndex
End If
GetData()

End Sub

Then specified in my datalist the CommandName=&quot;unselect&quot;.

regards,
Brian
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top