从asp.net ListView获取多个文本框值

时间:2014-08-02 02:20:01

标签: c# asp.net listview

我对C#和asp.net

非常陌生

经过几个小时的努力,我已经能够从我的数据库中的表填充列表视图,这很棒。当我尝试更新项目时出现问题。

现在我的更新功能是:

public static void UpdateBook(USER_BOOK book)
{

    var result = from r in ctx.USER_BOOK
                 where r.user_username == book.user_username &&
                 r.title == book.title
                 select r;

    result.FirstOrDefault().title = book.title;
    result.FirstOrDefault().author = book.author;
    result.FirstOrDefault().numpages = book.numpages;
    ctx.SaveChanges();

}

问题显然是因为我传入的书是更新后的书,如果标题被更改,则会出现问题(无论是编辑错误的书,还是找不到书。编辑)

我遇到的解决方案似乎是在用户单击编辑按钮时捕获初始值,将它们存储在会话中,并从我的函数中检索它们。

我已经抓住了编辑按钮的点击事件,但我不知道如何检索文本框内容。

如果你能帮助我,请提前致谢。

A picture of my ListView

2 个答案:

答案 0 :(得分:0)

在这种情况下使用会话不好。你看this link。尝试使用主键代码,datakey是数据库中的字段主键。你看起来功能    void UnitMeasureListView_ItemUpdating(Object sender, ListViewUpdateEventArgs e) 在链接中。您可以访问e.NewValues,e。给您更新功能。

答案 1 :(得分:0)

尝试将GUID添加到book table.it将是Book表的主键。所有事务都可以基于此GUID尝试使用此.make确保始终保持会话ID与此GUID相关

    var result = from r in ctx.USER_BOOK
                 where r.user_username == book.user_username &&
                 r.Guid == Session['bookGuid']
                 select r;