我有2个列表框。一个包含未分配的所有部门,其他列表框包含分配给特定人员的所有部门。现在我想使用插入和删除查询添加和删除部门。查询将仅在1个表上执行,即Assigned Department(listbox2)并单击SAVE按钮。我已完成插入部分但无法处理删除部分。我见过几个例子,但他们没有DB事件。
protected void Save_Click(object sender, EventArgs e)
{
DataTable dt = GetData2();
bool found = false;
foreach (RadListBoxItem item in RadListBox2.Items)
{
found = false;
foreach (DataRow dr in dt.Rows)
{
if (String.Compare(item.Value, dr["DeptID"].ToString()) == 0)
{
found = true;
label1.Text = "Add a New Group to the ListBox";
}
}
if (found == false)
{
Item(item.Text, item.Value);
}
这就是我想要做的。我想在Save按钮上处理插入和删除事件。
答案 0 :(得分:1)
我找到了解决方案,所以我将其发布在这里。
foreach (DataRow dr in dt.Rows)
{
found = false;
foreach (RadListBoxItem item in RadListBox2.Items)
{
if (String.Compare(item.Value, dr["DeptID"].ToString()) == 0)
{
found = true;
}
}
if (found == false)
{
//delete here
}
}
}
答案 1 :(得分:0)
我使用RadListBox的Transferred事件。当Transferred事件触发Items时,查看目标列表框的id并确定这些项是否已移动到未分配或已分配的ListBox。一旦知道目的地,就可以执行查询以添加或删除数据库中的行。
在任何情况下,您的查询都将取决于您的架构。在我的情况下,我有一个查找表,确定项目是否附加。
rlistAvailable_Transferred(object sender, Telerik.Web.UI.RadListBoxTransferredEventArgs e)
{
if (e.DestinationListBox.ID == "rlistAttached")
{
foreach (Telerik.Web.UI.RadListBoxItem li in e.Items)
{
//do insert query using li.Value
}
}
else
{
foreach (Telerik.Web.UI.RadListBoxItem li in e.Items)
{
//do delete query using li.Value
}
}
}