绑定的“未使用”项目的DropDownList加上当前行项目中的GridView的EditItemTemplate里?

StackOverflow https://stackoverflow.com/questions/2250395

我有2代表与可以被映射到彼此(一个表来自数据库我的应用之外,但具有大约我跟踪同一个实体的信息)唯一的ID。我要为链接的“其他”一“我”的记载提供了一个用户界面,所以我可以在我的表存储在“其他”标识的匹配记录。概括地说,密钥UI元素是示出可用(即,尚未连接的)从“其他”表中的记录。一个下拉列表

我对每一行中显示“我的”记录一个gridview,再加上显示来自链接的记录中的“其他”表中的一些信息,如果任何一列。该数据是关于建筑和性质,所以它可能是这样的:

Building1   Dallas   TX    Building1_Dallas_TX
Building2   Memphis  TN    Bldg2_Memphis_TN
Building3   Denver   CO
Building4   Seattle  WA
Building5   Boston   MA    Building5_Boston_MA

其中前3列显示从“我”表中的一些信息,最后一个显示来自“其他”表,其中记录已关联匹配的记录,其他地方没有联系已经建立了一个空白。我实际的GridView已经从“我”表几个列,但是这足以说明需求。

当编辑(未示出)被点击时的行,我希望能够编辑所有4列。第一3是文本框;最后一列应是示出所有的下拉列表中的未链接的从“其他”表中的记录,请一个“未分配”选项(如在列表中的第一项),以便记录可以是“未链接”,或干脆留下未分配的,请(适用于已经建立了联系的那些行)被链接的项目(它的“拿来主义”,但它需要在那里,使他们能够继续使用它)。

我可以正确填充下拉列表中代码隐藏在GridView RowEditing事件(除了予添加如结合设置为true AppendDataBoundItems选项的.aspx一个ListItem未分配的项目),并且我可以设置正确的SelectedValue该DDL的数据绑定事件,但在回发时,我点击更新该行的DDL中有没有项目了(除了未分配的项目),因此链接总是被清零。如果我手动设置链接直接编辑我的表,一切正常进入编辑模式 - DDL中有正确的项目,它预设选择正确的项目,但一切都失去了对更新回发。我曾尝试重新结合的DDL在页面周期的各个阶段,但显然我不太明白,周期也够了吗,因为我无法弄清楚如何让用户选择的项目来更新我的表。

我也试过填充与一个SqlDataSource的SelectCommand的DDL,但有没有运气,包括在其他数据库(目前联记录的ID,即使它是在“我”表中可用的,我把它作为一个GridView DataKey并将其添加为在SelectParameters为SqlDataSource的一个ControlParameter,没有在DDL项目列表中的当前连接的记录,我不能保持现有的链接。

我会暂缓发送一个代码示例现在 - 这条消息已经太长了! - 在希望的解决方案是显而易见的,从我所描述的......我不认为我的目的很奇怪,但我愿意被说服否则

提前感谢!

克里斯

有帮助吗?

解决方案

好吧,我不打算与代码的细节,因为也许你已经做了什么,我要建议。

有关最后一列,在下拉列表中,你必须执行一个SQL语句来抓住你未链接的项目。使用 “其中xx NOT IN”。为“未分配”的选项,只需在相同的代码范围将项目添加到列表如上。

下一步是手动处理GridView的编辑事件。插入,更新和删除。

我认为,这样你不会有问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top