大家好,我有一个repeater, 在repeater 里面, 如果碰到对的condition的话,就会call 一个function, 这个 function 是pop up 一个 小window, 让user 可以在里面填写资料,然后按 "OK" 按钮。
以下是我的 code :foreach( RepeaterItem itm in repGiftResults.Items )
{
if (pr.AdditionalFieldsEnabled == true)
    {
AdditionalInfoGiftProcess(pid, giftId, txtQty, txtToken);
}
}AdditionalInfoGiftProcess() 是一个generate 小 window 出来的 function.
以下是 AdditionalInfoGiftProcess() 的 code :public void AdditionalInfoGiftProcess(int productID, int giftID, TextBox txtQty, UserControls_TokenControl txtToken)
{
/*
Some logic here
*/

//generate pop up window
divAdditionalInfo.Style["visibility"] = "visible";
    divAdditionalInfo.Style["display"] = "table-cell";
}小window 是在html 里面code 出来的,它其实是一个division, ID 是 divAdditionalInfo。 在divAdditionalInfo division里面有textbox, 有 “OK" 按钮, 有 “cancel" 按钮, 和一些element (会跟着repeater 里面的资料有所改变。)
以下是div 的 code :<div 
    id="divAdditionalInfo" 
    class="BlackCover" 
    style="VISIBILITY:hidden; DISPLAY:none;" runat="server">
<!-- 
    html code that generate the pop out window. 
    consist of text box and `OK` button, and "Cancel" button. 
-->
</div>我所面对的问题是这样的 : 
例如我的 repeater里面有三个 row 是(pr.AdditionalFieldsEnabled == true), 那么我想要它会 pop up 3 次小window 出来,以便让 user 填写不同的资料,然后再按 "OK" 按钮。 
例如 :
1. 第一个 window pop up, 然后 user 填写 名字,然后按 OK 按钮。
2. 过后, 第二个 window pop up, 然后 user 填写所需的资料, 例如 年龄, 然后按 OK 按钮。
3. 以此类推,3个 不同的 window pop up后, 才算是结束。可是,每次只有最后一个 window pop up出来而已,其他之前的,好像都被最后一个window覆盖了。
也就是说,我只能填写最后一个 pop up window 的资料而已。求各位大神,帮帮我忙,解决这个问题。 感激不尽啊~
C#HTML

解决方案 »

  1.   

    加上sealed,就不能被override了。
      

  2.   

    无论碰到多少次对的condition,你的代码永远只弹出一次窗口(或者说只是把同一个窗口显示很多次而已)。因为你的只有一个DIV:divAdditionalInfo。
    所以你要么
    1.用其它办法创建多个 window pop up
    2.要么在用户点OK 按钮时才调出另一个不同的资料(你现在的代码放在同一个循环里,所以显示的是最后一个符合pr.AdditionalFieldsEnabled == true的资料,也就是你所说的“被最后一个window覆盖了”)
      

  3.   

    同意楼上的,把Item的模板写出来,或者,先用html写出来你想要的,然后对比html看哪里错了
      

  4.   

    回复 devmiao :可以给我多点提示吗?
    我只是初学者,可以的话希望你给我 code 的 example 
    不是很懂要怎样加去我的 code 里面。回复 gxquan :
    我想了整整两天多了,却想不到什么方法可以使它建造多个 window pop up. 不知你有没有什么建议?
    也就是因为我的代码是需要根据同一个循环里(RepeaterItem itm in repGiftResults.Items)的不同资料以便pop up 出不同内容的窗口,所以我好像有点想不到什么方法可以在 OK 按钮那边 才出现另外一个 窗口。 希望你能给点宝贵意见 回复 saucer :
    不是很明白你的意思。 希望能给多点 tips. 谢谢大家。
      

  5.   

    lz你的主题和正文完全不搭边啊。devmiao回答的是主题的问题。
      

  6.   

    不好意思啊,因为我是 programming 和 c# 的初学者。 这边的贴可以更改的吗? 我想改帖子的主题。
      

  7.   

    对不起啦,我是马来西亚华人,所以每次问人家英文问题的时候,都习惯用英文来问,所以现在有时不懂在programming 上,有些华语的代名词是什么。别生气,别生气~
      

  8.   

    创建很多个窗口是很容易的比如设置某个控件的innerHTML,但收集用户在每个窗口输入的数据是个难题。
    另外可以通过为OK按钮添加Onclick事件,在事件处理程序中按需要改变divAdditionalInfo的显示信息,对于用户来说相当于出现了另外的窗口(这种方法也会面临收集信息难题)。
    解决思路是这样的,但你的程序还会出现更多的问题,主要原因是你还没分得清本地应用程序和WEB应用程序的区别。
    给你一句话:如果一个解决方案会带来无数的难题,那说明你的设计有问题经,这个时候最好的办法是把它们全删了再设计一个全新的方案。
    我觉得只要你肯花心思把一本入门书看完,你现在的问题就迎刃而解了
      

  9.   

     //generate pop up window
        divAdditionalInfo.Style["visibility"] = "visible";
        divAdditionalInfo.Style["display"] = "table-cell";楼主所谓的“弹出”一个窗口,其实只是让隐藏的窗口显示罢了,
    所以你怎么可能让一个窗口显示3次呢?
    可以换个思路,一次让用户输入全部要改输入的信息,而且你这样不断弹窗口,用户也会感到反感的。
    如果3次输入之间,后者会被前者影响,那也可以在一个窗口里面用UpdatePanle做联动
      

  10.   

    想请大家能不能帮帮我另外一个问题。
    http://bbs.csdn.net/topics/390491617