Click here to Skip to main content
15,887,676 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more:
hi pz help me outi want to transfer data from one list view to another listview on button click
Posted

Hi , 
Hope this Example Help You , On this Example 
Add new Item programmatically  to listview 
Move Item from Listview to another Listview 

Hope it Help you


Code behind:
C#
DataTable Dt = new DataTable();
   DataTable Dt2 = new DataTable();
       //save
   protected void Button2_Click(object sender, EventArgs e)
   {
       if (TextBox1.Text == string.Empty)
       {
           lblStatus.Text = "Enter value ";
           return;
       }
       if (ViewState["Dt"] == null)
       {
           DataColumn col = new DataColumn("test");
           col.DataType = System.Type.GetType("System.String");
           Dt.Columns.Add(col);
       }
       else
       {
           Dt = (DataTable)ViewState["Dt"];
       }

       DataRow dr =      Dt.NewRow();
       dr[0] = TextBox1.Text;;

       Dt.Rows.Add(dr);
       ListView1.DataSource = Dt;
    ListView1.DataBind();
    ViewState.Add("Dt", Dt);
    lblStatus.Text = "your Item saved ";
    TextBox1.Text = string.Empty;

   }

   protected void ListView1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e)
   {
       ListView1.SelectedIndex = e.NewSelectedIndex;
       lblStatus.Text = "your Item selected ";

       Dt = (DataTable)ViewState["Dt"];
       ListView1.DataSource = Dt;
   }
     //move
   protected void Button1_Click(object sender, EventArgs e)
   {
           //retrive the from datatable Stored in Viewstate
       Dt = (DataTable)ViewState["Dt"];
               //check on the viewstate if not exist i will create strucre for the table
       if (ViewState["Dt2"] == null)
       {
           DataColumn col = new DataColumn("test");
           col.DataType = System.Type.GetType("System.String");
           Dt2.Columns.Add(col);
       }
       else
       {
           Dt2 = (DataTable)ViewState["Dt2"];
       }
           // this can be useful if you can select more than item thorugh checkbox etc .
         //  object[] xx = Dt.Rows[1].ItemArray;
          //foreach (string item in xx)
           //{
           //    string yy = item[0].ToString();
           //}
       //stor the value of selected item in local variable
           string ItemValue = Dt.Rows[ListView1.SelectedIndex][0].ToString();
           //remove the item from Datatable in listview1
           Dt.Rows.RemoveAt(ListView1.SelectedIndex);
       //create new row in 2th datatable    , storeing the value
           DataRow dr2 = Dt2.NewRow();
           dr2[0] = ItemValue;
           Dt2.Rows.Add(dr2);
           ListView2.DataSource = Dt2;
           ListView2.DataBind();
           ViewState.Add("Dt2", Dt2);

           ListView1.DataSource = Dt;
           ListView1.DataBind();
           ViewState.Add("Dt", Dt);
           lblStatus.Text = "your Item Moved ";
   }


ASP.NET
<div>
        <asp:ListView ID="ListView1" runat="server"
           
            onselectedindexchanging="ListView1_SelectedIndexChanging">
            <ItemTemplate>
    <tr>
    <td>
<asp:LinkButton ID="lnkSelect" Text="Select" CommandName="Select" runat="server" />
    </td>
           <td>
                  <%# Eval("test")%>
           </td>   <br />
    </tr>
</ItemTemplate>
                 <SelectedItemTemplate>
    <tr style="background-color: #FFFF66; color: #808000;">
         <td>
<asp:LinkButton ID="lnkSelect" Text="Select" CommandName="Select" runat="server"
               ForeColor="Red" />
    </td>
           <td  style="background-color: #FFFF66; color: #808000;">
                  <%# Eval("test")%>
           </td>   <br />

      </tr>
   </SelectedItemTemplate>
        </asp:ListView>
       <br />
                           <asp:Button ID="Button1" runat="server" Text="Move"
            onclick="Button1_Click" style="height: 26px"  />
        <asp:Label ID="lblStatus" runat="server"></asp:Label>
       <br />
       <asp:ListView ID="ListView2" runat="server">
       <ItemTemplate>
    <tr style="background-color: #00FF00">
    <td>
                  <%# Eval("test")%>
           </td>   <br />
    </tr>
</ItemTemplate>
        </asp:ListView>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button2" runat="server" Text="Save" onclick="Button2_Click" />
    </div>


Best Regards
M.Mitwalli
 
Share this answer
 
v2
Comments
shivam shah28 30-Mar-12 10:52am    
thank u for reply i try and reply u back thank u so much
shivam shah28 30-Mar-12 12:39pm    
thank u very much for this code and can u tell me one thing that on button click if i have more than one column in datatable than how code be it added by foreach loop in datatble 2
Mohamed Mitwalli 30-Mar-12 16:50pm    
Hi Hope it Help you
Try this one .

DataTable Dt = new DataTable();
DataTable Dt2 = new DataTable();
//save
protected void Button2_Click(object sender, EventArgs e)
{
if (TextBox1.Text == string.Empty)
{
lblStatus.Text = "Enter value ";
return;
}
if (ViewState["Dt"] == null)
{
DataColumn col = new DataColumn("test");
col.DataType = System.Type.GetType("System.String");
Dt.Columns.Add(col);

DataColumn col2 = new DataColumn("test2");
col2.DataType = System.Type.GetType("System.String");
Dt.Columns.Add(col2);


}
else
{
Dt = (DataTable)ViewState["Dt"];
}

DataRow dr = Dt.NewRow();
dr[0] = TextBox1.Text;
dr[1] = TextBox2.Text;

Dt.Rows.Add(dr);
ListView1.DataSource = Dt;
ListView1.DataBind();
ViewState.Add("Dt", Dt);
lblStatus.Text = "your Item saved ";
TextBox1.Text = string.Empty;
TextBox2.Text = string.Empty;

}

protected void ListView1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e)
{
ListView1.SelectedIndex = e.NewSelectedIndex;
lblStatus.Text = "your Item selected ";

Dt = (DataTable)ViewState["Dt"];
ListView1.DataSource = Dt;
}
//move
protected void Button1_Click(object sender, EventArgs e)
{
//retrive the from datatable Stored in Viewstate
Dt = (DataTable)ViewState["Dt"];
//check on the viewstate if not exist i will create strucre for the table
if (ViewState["Dt2"] == null)
{
DataColumn col = new DataColumn("test");
col.DataType = System.Type.GetType("System.String");
Dt2.Columns.Add(col);


DataColumn col2 = new DataColumn("test2");
col2.DataType = System.Type.GetType("System.String");
Dt2.Columns.Add(col2);

}
else
{
Dt2 = (DataTable)ViewState["Dt2"];
}
// this can be useful if you can select more than item thorugh checkbox etc .

//stor the value of selected item in local variable
string ItemValue = Dt.Rows[ListView1.SelectedIndex][0].ToString();
string ItemValue2 = Dt.Rows[ListView1.SelectedIndex][1].ToString(); // this for col 2 and u can do like this if there is more than one col in Datatable

//remove the item from Datatable in listview1
Dt.Rows.RemoveAt(ListView1.SelectedIndex);
//create new row in 2th datatable , storeing the value
DataRow dr2 = Dt2.NewRow();
dr2[0] = ItemValue;
dr2[1] = ItemValue2;

Dt2.Rows.Add(dr2);
ListView2.DataSource = Dt2;
ListView2.DataBind();
ViewState.Add("Dt2", Dt2);

ListView1.DataSource = Dt;
ListView1.DataBind();
ViewState.Add("Dt", Dt);
lblStatus.Text = "your Item Moved ";
}

Mohamed Mitwalli 30-Mar-12 16:52pm    
<div>
<asp:ListView ID="ListView1" runat="server"

onselectedindexchanging="ListView1_SelectedIndexChanging">
<itemtemplate>
<tr>
<td>
<asp:LinkButton ID="lnkSelect" Text="Select" CommandName="Select" runat="server" />
</td>
<td>
<%# Eval("test")%>
</td>
<td>
<%# Eval("test2")%>
</td>
<br />
</tr>

<SelectedItemTemplate>
<tr style="background-color: #FFFF66; color: #808000;">
<td>
<asp:LinkButton ID="lnkSelect" Text="Select" CommandName="Select" runat="server"
ForeColor="Red" />
</td>
<td style="background-color: #FFFF66; color: #808000;">
<%# Eval("test")%>
</td>
<td style="background-color: #FFFF66; color: #808000;">
<%# Eval("test2")%>
</td>
<br />

</tr>
</SelectedItemTemplate>

<br />
<asp:Button ID="Button1" runat="server" Text="Move"
onclick="Button1_Click" style="height: 26px" />
<asp:Label ID="lblStatus" runat="server">
<br />
<asp:ListView ID="ListView2" runat="server">
<itemtemplate>
<tr style="background-color: #00FF00">
<td>
<%# Eval("test")%>
</td>
<td>
<%# Eval("test2")%>
</td> <br />
</tr>


<asp:TextBox ID="TextBox1" runat="server">
<asp:TextBox ID="TextBox2" runat="server">
<asp:Button ID="Button2" runat="server" Text="Save" onclick="Button2_Click" />
</div>
May this help you..
for (int i = 0; i <= ListBox1.Items.Count - 1; i++)
{
ListBox2.Items.Add(ListBox1.Items[i]);
 
Share this answer
 
Comments
shivam shah28 30-Mar-12 10:48am    
thank u for reply

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900