RadListView数据绑定与实体框架 - 插入/更新/删除

时间:2013-11-22 01:05:22

标签: c# asp.net entity-framework listview telerik

我正在尝试创建一个ASP.NET页面,以允许使用Entity Framework进行基本的CRUD操作。使用Telerik的RadListView,我有以下HTML:

<telerik:RadListView ID="RadListView1" runat="server" OnNeedDataSource="RadListView1_NeedDataSource">
<ItemTemplate>
    <table>
        <tr>
            <td>First Name:  
                <%#Eval("FirstName")%>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnEdit" runat="server" Text="Edit" CommandName="Edit" Width="70px"></asp:Button>
            </td>
        </tr>
    </table>
</ItemTemplate>
<EditItemTemplate>
    <table>
        <tr>
            <td>First Name: 
                <asp:TextBox ID="txtFirstName" runat="server" Text='<%#Bind("FirstName")%>'></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnUpdate" runat="server" Text="Update" CommandName="Update" Width="70px"></asp:Button>
            </td>
        </tr>
    </table>
</EditItemTemplate>

这是背后的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
       RadListView1.DataSource = GetData();
    }
}

protected void RadListView1_NeedDataSource(object sender, Telerik.Web.UI.RadListViewNeedDataSourceEventArgs e)
{
    RadListView1.DataSource = GetData();
}

private List<Person> GetData()
{
    using (BuildingAccessEntities ctx = new BuildingAccessEntities())
    {
        var query = from a in ctx.People
                    orderby a.FirstName
                    select a;

        return query.ToList();
    }
}

到目前为止,此代码正确显示填充的RadListView。单击“编辑”按钮时,RadListView将切换到“编辑”模式并允许我编辑所选记录;但是,当我单击“更新”按钮保存记录时,不会保存更改。

我还没有尝试过看看插入和删除行为是否也是这样。

我确信双向绑定应该是RadListView非常简单的东西,但我是新手,并且除了使用数据源控件(SqlDataSource,EntityDataSource)之外,还没有找到很多例子来使其工作。等等。)。

非常感谢任何帮助!

编辑:如果有更好的方法使用Entity Framework进行双向数据绑定,我也很乐意听到这些建议。我没有按照当前的方式设置我一直在尝试的事情,只是想知道最好的方法。

1 个答案:

答案 0 :(得分:0)

这样做实际上很容易。 Look here for how the Telerik demo handles manual CRUD commands.

专注于RadListView2_ItemUpdating,因为它正是您要使用的内容。只要您知道更新完成,那么您就可以完成更新。问题是如果失败,导致您的数据源中有一组数据用于列表视图,而另一组数据存储在数据库中。

处理这一点取决于您,因为您可以从数据库重新加载数据以确保用户看到实际存在的内容,或者您​​可以提醒他们错误以提交帮助票证。你明白了。

相关问题