Is there a way to persist changes in a textbox within a listview to the correct object in a custom object list?
I cannot find an elegant way to do this.
ASPX:
Code-behind:
I cannot find an elegant way to do this.
ASPX:
<
telerik:RadWindow
ID
=
"rwCreateTask"
runat
=
"server"
Modal
=
"True"
Height
=
"600px"
Width
=
"400px"
>
<
ContentTemplate
>
<
telerik:RadListView
ID
=
"RadListView1"
runat
=
"server"
>
<
ItemTemplate
>
<
table
>
<
tr
>
<
td
>
</
td
>
<
td
>
Oppgave:
</
td
>
<
td
>
Type:
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text='<%# Eval("Line") == DBNull.Value ? "" : Eval("Line") %>'></
asp:Label
>
</
td
>
<
td
>
<
telerik:RadTextBox
ID
=
"RadTextBox1"
runat
=
"server"
Text='<%# Bind("Text") == DBNull.Value ? "" : Bind("Text") %>' OnTextChanged="RadTextBox1_TextChanged"></
telerik:RadTextBox
>
</
td
>
<
td
>
<
telerik:RadDropDownList
ID
=
"RadDropDownList1"
runat
=
"server"
DataSourceID
=
"taskTypeSource"
DataTextField
=
"Name"
DataValueField
=
"TaskTypeId"
>
</
telerik:RadDropDownList
>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
telerik:RadListView
>
<
telerik:RadButton
ID
=
"RadButton1"
runat
=
"server"
Text
=
"Legg til oppgave"
OnClick
=
"RadButton1_Click"
></
telerik:RadButton
>
</
ContentTemplate
>
</
telerik:RadWindow
>
Code-behind:
public
partial
class
TaskListControl : System.Web.UI.UserControl
{
BindingList<CogTaskGenItem> taskItems =
new
BindingList<CogTaskGenItem>();
CogTaskGenItem taskItem =
new
CogTaskGenItem();
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(Session[
"taskItems"
] !=
null
)
{
taskItems = (BindingList<CogTaskGenItem>)Session[
"taskItems"
];
}
}
protected
void
btnCreateTask_Click(
object
sender, EventArgs e)
{
string
script =
"<script>openWindow();</script>"
;
Page.ClientScript.RegisterStartupScript(Page.GetType(),
"OpenTaskWindow"
, script);
}
public
void
RadButton1_Click(
object
sender, EventArgs e)
{
AddTaskItem();
}
private
void
AddTaskItem()
{
taskItem =
new
CogTaskGenItem();
taskItem.Line = taskItems.Count + 1;
taskItems.Add(taskItem);
RadListView1.DataSource = taskItems;
Session[
"taskItems"
] = taskItems;
}
protected
void
RadTextBox1_TextChanged(
object
sender, EventArgs e)
{
taskItems.Clear();
foreach
(var item
in
RadListView1.Items)
{
taskItem = (CogTaskGenItem)item.DataItem;
taskItem.Text = ((RadTextBox)sender).Text;
taskItems.Add(taskItem);
}
RadListView1.DataSource = taskItems;
Session[
"taskItems"
] = taskItems;
}
}