在用户控件之间传递数据

时间:2011-11-16 13:28:02

标签: c# asp.net

我在这里遇到了问题。

我有一个数据库表Things(id,name,description)

在default.aspx中,我执行“从Things中选择名称”到SqlDataReader,然后将其绑定到Listbox。

所以现在我有了一个包含所有来自Things的名字的列表框。

我想要做的是:当选择一个列表框行,然后单击它旁边的按钮时,它将该行中的所有信息(id,name,description)传递给它旁边的ListView行。我的问题是,当我选择列表框行时,我只得到了名称,而且我不想做出“select * from name where = x”,因为表中可能有相同的名称。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用ListBox控件的下一个定义:

<asp:ListBox ID="lbSample" runat="server" DataSourceID="dsSample"
    DataTextField="name" DataValueField="id"></asp:ListBox>

通过这种方式,您可以轻松获得名称属性以及 ID

答案 1 :(得分:0)

简单但“肮脏”的解决方案是从表中选择所有内容:

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

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

现在将此值传递给ListView并在需要时解析它,按|拆分以获取所需的单个数据。 (身份证,姓名和说明)

通过这种方式,您不必再次查询数据库,但它并不优雅,并且存在用户“假冒”数据的风险,因为您依赖客户端数据而不存在这些数据。