首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

寻求一个解决办法~大家帮帮忙撒~

2011-12-25 
寻求一个解决方法~~~~~大家帮帮忙撒~~我在GridView的OnRowDataBound里面添加protectedvoidGridView1_RowDa

寻求一个解决方法~~~~~大家帮帮忙撒~~
我在GridView的OnRowDataBound里面添加
        protected   void   GridView1_RowDataBound(object   sender,   GridViewRowEventArgs   e)
        {

                if   (e.Row.RowType   ==   DataControlRowType.DataRow)
                {
                        string   TheID   =   GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
                        string   DivID   =   "Edit "   +   TheID;
                        e.Row.Attributes.Add( "onclick ",   "GetEdit( ' "   +   DivID   +   " ') ");
                         
                        Panel   P1   =   new   Panel();//加载编辑控件的层
                        P1.ID   =   DivID;
                        P1.CssClass   =   "EditCss ";
                        P1.Width   =   650;
                        EidDiv.Controls.Add(P1);
                       
                        UserControl_EditWorkFlow   EditWorkFlow;//加载编辑控件
                        EditWorkFlow   =   (UserControl_EditWorkFlow)LoadControl( "UserControl/EditWorkFlow.ascx ");
                        EditWorkFlow.wfid   =   TheID;
                        P1.Controls.Add(EditWorkFlow);

                        HyperLink   MyHy   =   (HyperLink)EditWorkFlow.FindControl( "GiveUp ");//加载取消编辑按钮
                        MyHy.Text= "   取   消   ";
                        MyHy.CssClass   =   "Gb ";
                        MyHy.NavigateUrl   =   " ";
                        MyHy.Attributes.Add( "onclick ",   "GetEditNo( ' "   +   DivID   +   " ') ");
                }
        }

想做到的效果就是单击任何一行,就显示一个层进行该行数据的编辑,然后单击可以取消编辑。
显示的层是动态添加的,层里的是一个ascx控件。ascx有一个属性就是wfid,单击行把该行ID取出来给这个控件实现编辑。

现在的问题是:
1:我加载页面后,直接翻到GridView的第二页,单击一行,显示出的编辑层内没有对该行数据进行绑定,而不翻页的时候第一页就可以绑定。
2:我单击编辑层上的确定,编辑完成后,在单击行,显示javascript错误,找不到对象。

要实现我想要的效果我觉得我的方法比较不好用啊,请问有经验的大哥们平时怎样解决啊?还有我出现这个错误1的原因是什么啊?我认为是GridView执行绑定的先后顺序的一些问题,我感觉我就不应该把对编辑控件的绑定传值放OnRowDataBound里面。可是放其他地方我不会啊。。。。。



[解决办法]
帮你顶一下。没有做过
[解决办法]
帮你顶一下
[解决办法]
========

我以前也想过这个问题 ..

这样想 是因为 我同时 做B/S 和 C/S 项目,所以吧 C/S中那一套 拿来到B/S 中用
C/S 中我们通常喜欢 点击一行..出现一个编辑窗体.然后保存.
但是B/S 中. 通常是在 绑定行的最后一列有一个按钮..要么在当前的行进行编辑. 要么转发页面进行编辑...
C/S B/S 实现起来 都 比较简单....如果你要吧C/S拿到B/S 或/B/S 拿到C/S 中用的话,

只会增加程序的难度..不会有 什么好的效果..我们也不会觉得你很牛比..

所以你那种做法 在实际开发当中 是要被否决的....

就相当于 一个,明明是 C/S 的项目..你用B/S 开发.....
[解决办法]
e.Row.Attributes.Add( "onclick ", "GetEdit( ' " + DivID.ClientID + " ') ");
[解决办法]
不好意思,没看清楚,上面的写错了
[解决办法]
e.Row.Attributes.Add( "onclick ", "GetEdit( ' " + DivID + " ') ");

MyHy.Attributes.Add( "onclick ", "GetEditNo( ' " + DivID + " ') ");

都能换成类似如下( "onclick ", "GetEdit( ' " + p1.ClientID + " ') ");看看行不行

热点排行