在用户控件之间传递数据

本文关键字:数据 之间 用户 控件 | 更新日期: 2023-09-27 18:14:43

我遇到了一个问题。

我有一个DB表Things(id,name,description) .

在违约。我做一个"select name from Things"到SqlDataReader,然后我把它绑定到一个列表框。

现在我有了一个列表框,里面有来自Things的所有名字。

我想做的是:当选择一个列表框行,然后点击旁边的按钮,传递所有的信息从行(id,名称,描述)到一个ListView行,它旁边的权利。我的问题是,当我选择列表框行,我只得到了名称,我不想做一个"select * from things where name=x",因为可能有相等的名称在表中。

在用户控件之间传递数据

使用下一个ListBox控件定义:

<asp:ListBox ID="lbSample" runat="server" DataSourceID="dsSample"
    DataTextField="name" DataValueField="id"></asp:ListBox>
通过这种方式,您可以轻松地获得name属性以及id

简单但"不干净"的解决方案是从表中选择所有内容:

Select [id], [name], [description] from Things

然后将所有这些作为每个项目的值,例如用|字符分隔。

现在将此值传递给ListView并在需要时解析它,通过|拆分以获得所需的单个数据。(Id, name, description)

这样你就不必再查询数据库了,但是这样做并不优雅,而且会有用户"伪造"数据的风险,因为你依赖的是客户端数据。