VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1021|回复: 6

datagrid里的问题,高手请进

[复制链接]

3

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-1-21 23:00:01 | 显示全部楼层 |阅读模式
有一datagrid,
其中一欄:
<asp:TemplateColumn  HeaderText="業類">
      <HeaderStyle Width="40px"></HeaderStyle>
     <ItemTemplate>
                   <%# DataBinder.Eval(Container.DataItem,"ywdesp")%>
     </ItemTemplate>
      <EditItemTemplate>
               <asp:dropdownlist ID="yk" runat="server">
                     <asp:listitem Value="0" Text="其它"/>
                     <asp:listitem Value="1" Text="內一"/>
                         <asp:listitem Value="2" Text="內二"/>
                         <asp:listitem Value="3" Text="外銷"/>
                         <asp:listitem Value="4" Text="行銷"/>                         
                   </asp:dropdownlist>
     </EditItemTemplate>
</asp:TemplateColumn>
在非編輯狀態時,顯示“其它”,"內一","內二","外銷","行銷"之類的,但我想在編輯狀態時,是“其它”時yk(DropDownList)的SelectedIndex=0,"內一"時SelectedIndex=1,......

但我用下面代碼,運行不成功,請幫忙,謝謝!

        public void gridUserItemDataBound(object sender,DataGridItemEventArgs e)
    {          
          if(e.Item.ItemType!=ListItemType.Header)
          {
        switch(e.Item.Cells[3].Text)
                {
                   case "其它":
                            deptIndex=0;
                            break;
                   case "內一":
                            deptIndex=1;
                                break;
                   case "內二":
                            deptIndex=2;
                                break;
                   case "外銷":
                            deptIndex=3;
                                break;
                   case "行銷":
                            deptIndex=4;
                                break;
                }
          
            if(e.Item.ItemType==ListItemType.EditItem)
                {
                  DropDownList myddl=(DropDownList)e.Item.FindControl("yk");
                  myddl.SelectedIndex=deptIndex;
                }
          }         
    }
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-31 14:36:01 | 显示全部楼层
public void gridUserItemDataBound(object sender,DataGridItemEventArgs e)
    {          int deptIndex;
          if(e.Item.ItemType!=ListItemType.Header)
          {
switch(dt.rows[e.item.itemindex].[你的字段名"])
                {
                   case "其它":
                            deptIndex=0;
                            break;
                   case "內一":
                            deptIndex=1;
                                break;
                   case "內二":
                            deptIndex=2;
                                break;
                   case "外銷":
                            deptIndex=3;
                                break;
                   case "行銷":
                            deptIndex=4;
                                break;
                }

if(e.Item.ItemType==ListItemType.EditItem)
                {
                  DropDownList myddl=(DropDownList)e.Item.FindControl("yk");
                  myddl.SelectedIndex=deptIndex;
                }

}

}
回复

使用道具 举报

3

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-1-31 18:45:01 | 显示全部楼层
switch(dt.rows[e.item.itemindex].[你的字段名"])

這個dt是哪裡來的,是什麼?
回复

使用道具 举报

0

主题

58

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-1-31 21:09:01 | 显示全部楼层
//int deptIndex;

>>>>> try:

public int deptIndex
{
    get {return (int)ViewState["deptIndex"];}
    set {ViewState["deptIndex"]= value;}
}
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-31 21:27:01 | 显示全部楼层
你确定是e.Item.ItemType!=ListItemType.Header吗,我觉得应该是ListItemType.DataItem吧,
Header是标题行,还有你的代码并不是一次全部执行的。所以会有问题的。
回复

使用道具 举报

0

主题

43

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-1-31 22:00:02 | 显示全部楼层
e.Item.Cells[3].Text在编辑状态下已经取不到了
这个问题前几天我也遇到过,我是这样处理的,可以参考下

dropdownlist的tooltip绑定编辑前的值:
<asp:dropdownlist ID="yk" runat="server" ToolTip='<%# DataBinder.Eval(Container.DataItem,"ywdesp")%>'>
                     <asp:listitem Value="0" Text="其它"/>
                     <asp:listitem Value="1" Text="內一"/>
                         <asp:listitem Value="2" Text="內二"/>
                         <asp:listitem Value="3" Text="外銷"/>
                         <asp:listitem Value="4" Text="行銷"/>                         
                   </asp:dropdownlist>

后台: switch(yk.ToolTip)
回复

使用道具 举报

3

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-2-1 10:45:01 | 显示全部楼层
to yfacmilan

真聰明,你這樣果然不錯!

謝謝!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表