ASP.NET Listview with a DropDown List having own datasource in Insert Item Template
Here is the procees for ASP.NET Listview with a DropDown List having own datasource in Insert Item Template.
I have a ListView1 with SqlDataSource1
I wanna place DropDownList in InsertItem Template with SqlDataSource2
<td>
<asp:DropDownList ID="ddlProject" runat="server" datatextfield="v" DataValueField="v" DataSourceID="SqlDataSource2">
</asp:DropDownList>
</td>
<td>
<asp:TextBox ID="unitTextBox" runat="server" Text='<%# Bind("unit") %>' />
</td>
You can have other controls databind to list view if required accept DropDown
Now you need to assign the dropdownvalue to insert parameter . It can be done at ListView1_ItemInserting Event
Protected Sub ListView1_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewInsertEventArgs) Handles ListView1.ItemInserting
Dim ddl As DropDownList = TryCast(e.Item.FindControl("ddlProject"), DropDownList)
If ddl IsNot Nothing Then
e.Values("project") = ddl.SelectedValue
End If
End Sub
May be this event dosent trigger so call it from listview tag as OnItemInserting event:
<asp:ListView ID="ListView1" runat="server" DataKeyNames="uid"
DataSourceID="SqlDataSource1" InsertItemPosition="FirstItem" OnItemInserting="ListView1_ItemInserting">
###########
In Same Manner we can hav an uneditable label or textbox whose value cant be edited by user...
declare ur label in insertitem template without binding to datasource parameter
<td>
<asp:Label ID="lblProject" runat="server" Text=""></asp:Label>
</td>
Now use listview databound event
Protected Sub ListView1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound
Dim lbl As Label = TryCast(ListView1.InsertItem.FindControl("lblProject"), Label)
If lbl IsNot Nothing Then
lbl.Text = ddlProject.SelectedValue
End If
End Sub
envoke this event from listview
<asp:ListView ID="ListView1" runat="server" DataKeyNames="uid"
DataSourceID="SqlDataSource1" InsertItemPosition="FirstItem" OnItemDataBound = "ListView1_ItemDataBound">
Update the insert parameter value programmatic-ally at page load or whenever required:
SqlDataSource1.InsertParameters("project").DefaultValue = ddlProject.SelectedValue
- Vinod Kotiya
www.vinodkotiya.com
I have a ListView1 with SqlDataSource1
I wanna place DropDownList in InsertItem Template with SqlDataSource2
<td>
<asp:DropDownList ID="ddlProject" runat="server" datatextfield="v" DataValueField="v" DataSourceID="SqlDataSource2">
</asp:DropDownList>
</td>
<td>
<asp:TextBox ID="unitTextBox" runat="server" Text='<%# Bind("unit") %>' />
</td>
You can have other controls databind to list view if required accept DropDown
Now you need to assign the dropdownvalue to insert parameter . It can be done at ListView1_ItemInserting Event
Protected Sub ListView1_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewInsertEventArgs) Handles ListView1.ItemInserting
Dim ddl As DropDownList = TryCast(e.Item.FindControl("ddlProject"), DropDownList)
If ddl IsNot Nothing Then
e.Values("project") = ddl.SelectedValue
End If
End Sub
May be this event dosent trigger so call it from listview tag as OnItemInserting event:
<asp:ListView ID="ListView1" runat="server" DataKeyNames="uid"
DataSourceID="SqlDataSource1" InsertItemPosition="FirstItem" OnItemInserting="ListView1_ItemInserting">
###########
In Same Manner we can hav an uneditable label or textbox whose value cant be edited by user...
declare ur label in insertitem template without binding to datasource parameter
<td>
<asp:Label ID="lblProject" runat="server" Text=""></asp:Label>
</td>
Now use listview databound event
Protected Sub ListView1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound
Dim lbl As Label = TryCast(ListView1.InsertItem.FindControl("lblProject"), Label)
If lbl IsNot Nothing Then
lbl.Text = ddlProject.SelectedValue
End If
End Sub
envoke this event from listview
<asp:ListView ID="ListView1" runat="server" DataKeyNames="uid"
DataSourceID="SqlDataSource1" InsertItemPosition="FirstItem" OnItemDataBound = "ListView1_ItemDataBound">
Update the insert parameter value programmatic-ally at page load or whenever required:
SqlDataSource1.InsertParameters("project").DefaultValue = ddlProject.SelectedValue
- Vinod Kotiya
www.vinodkotiya.com
Comments