FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 4598|回复: 9
打印 上一主题 下一主题

Grid的模板控件问题

[复制链接]
跳转到指定楼层
楼主
发表于 2012-4-17 15:06:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是ExtAspNet版本:3.1.1.0,浏览器类型和版本:IE 9

问题描述:在ext:TemplateField中嵌套微软自带的DropDownList控件,但是却无法获取DropDownList控件的值

下面是前台代码
<ext:Grid ID="Grid1" AnchorValue="100% 88%" ShowBorder="true" ShowHeader="false"
                EnableBackgroundColor="true" EnableRowNumber="true" AllowSorting="true"
                EnableCheckBoxSelect="true" AutoPostBack="true" AutoScroll="true" runat="server"
                DataKeyNames="usergh,workid,begrq,username">
<Columns>
                    <ext:BoundField Width="70px" DataField="flag" HeaderText="状态" />
                    <ext:BoundField Width="50px" DataField="username" HeaderText="姓名" />
                    <ext:BoundField Width="100px" DataField="dept" HeaderText="部门" ExpandUnusedSpace="True" />
                    <ext:BoundField Width="165px" DataField="workrq" HeaderText="日期" />
                    <ext:TemplateField HeaderText="评分">
                        <ItemTemplate>
                            <aspropDownList ID="ddlJLScore" runat="server">
                                <aspistItem Value="100" />
                                <aspistItem Value="95" />
                                <aspistItem Value="90" />
                                <aspistItem Value="85" />
                                <aspistItem Value="80" />
                                <aspistItem Value="75" />
                                <aspistItem Value="70" />
                                <aspistItem Value="65" />
                                <aspistItem Value="60" />
                                <aspistItem Value="55" />
                                <asp:ListItem Value="50" />
                            </aspropDownList>
                        </ItemTemplate>
                    </ext:TemplateField></Columns>
            </ext:Grid>
后台取值代码:
                System.Web.UI.WebControls.DropDownList ddlScore = ((GridRow)Grid1.Rows[selRow]).FindControl("ddlJLScore") as System.Web.UI.WebControls.DropDownList;
但是运行之后ddlScore为null,请问这种情况我应该如何获取ddlScore的选定值呢


沙发
发表于 2012-4-17 17:37:26 | 只看该作者
sanshi说会在以后处理这种情况,给出示例。

有网友在http://bbs.extasp.net/forum.php? ... &extra=page%3D1
提出用
Request.Form[]
方式,至于是否可行,我没有测试,给你提供个参考
板凳
 楼主| 发表于 2012-4-19 11:15:56 | 只看该作者
Landroid 发表于 2012-4-17 17:37
sanshi说会在以后处理这种情况,给出示例。

有网友在http://bbs.extasp.net/forum.php?mod=viewthread&tid ...

太感谢了,用那个方法可以获取到,终于解决了,再次表示感谢
地板
发表于 2012-4-19 11:19:26 | 只看该作者
快乐的猪 发表于 2012-4-19 11:15
太感谢了,用那个方法可以获取到,终于解决了,再次表示感谢

不客气~可以把你的解决方法贴出来,也许会帮助到别的朋友哦~
5#
发表于 2012-4-19 12:45:05 | 只看该作者
Landroid 发表于 2012-4-17 17:37
sanshi说会在以后处理这种情况,给出示例。

有网友在http://bbs.extasp.net/forum.php?mod=viewthread&tid ...

恩。正在处理这个问题,有点棘手...
6#
 楼主| 发表于 2012-4-19 15:42:13 | 只看该作者
我是用的Request.Form[string.Format("Grid1_{0}$ddlJLScore", i)];方法获取的值,但是我现在想给grid中的那个DropDownList空间复制该如何实现呢
7#
发表于 2012-4-21 16:46:37 | 只看该作者
8#
发表于 2012-4-21 16:48:06 | 只看该作者
正在编码中,随后会放出几个例子
9#
发表于 2012-4-21 22:57:08 | 只看该作者
已经完成下拉列表相关示例,ChangeSet:76628                                

-增加示例grid/grid_edit_dropdownlist.aspx和grid/grid_edit_dropdownlist2.aspx,演示如何在后台绑定Grid中下拉列表数据。

这样为Grid中的下拉列表绑定数据:
  1. protected void Grid1_RowDataBound(object sender, ExtAspNet.GridRowEventArgs e)
  2.         {
  3.             System.Web.UI.WebControls.DropDownList ddlGender = (System.Web.UI.WebControls.DropDownList)Grid1.Rows[e.RowIndex].FindControl("ddlGender");

  4.             List<string> genderList = new List<string>();
  5.             genderList.Add("男");
  6.             genderList.Add("女");
  7.             ddlGender.DataSource = genderList;
  8.             ddlGender.DataBind();


  9.             DataRowView row = e.DataItem as DataRowView;

  10.             int gender = Convert.ToInt32(row["Gender"]);
  11.             if (gender == 1)
  12.             {
  13.                 ddlGender.SelectedValue = "男";
  14.             }
  15.             else
  16.             {
  17.                 ddlGender.SelectedValue = "女";
  18.             }

  19.         }
复制代码

这样获取用户提交的下拉列表的值:

  1. protected void Button1_Click(object sender, EventArgs e)
  2.         {
  3.             StringBuilder sb = new StringBuilder();
  4.             sb.Append("<table style="width:350px;"><tr><th>编号</th><th>姓名</th><th>用户输入的性别</th></tr>");
  5.             for (int i = 0, count = Grid1.Rows.Count; i < count; i++)
  6.             {
  7.                 sb.Append("<tr>");
  8.                 object[] rowDataKeys = Grid1.DataKeys[i];
  9.                 sb.AppendFormat("<td>{0}</td>", rowDataKeys[0]);
  10.                 sb.AppendFormat("<td>{0}</td>", rowDataKeys[1]);

  11.                 GridRow row = Grid1.Rows[i];
  12.                 System.Web.UI.WebControls.DropDownList ddlGender = (System.Web.UI.WebControls.DropDownList)row.FindControl("ddlGender");
  13.                 sb.AppendFormat("<td>{0}</td>", ddlGender.SelectedValue);

  14.                 sb.Append("<tr>");
  15.             }

  16.             sb.Append("</table>");

  17.             labResult.Text = sb.ToString();

  18.         }
复制代码


10#
 楼主| 发表于 2012-4-23 14:03:13 | 只看该作者
sanshi 发表于 2012-4-21 22:57
已经完成下拉列表相关示例,ChangeSet:76628                                

-增加示例grid/grid_edit_ ...

非常敬佩sanshi的敬业精神,太感谢了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-24 14:53 , Processed in 0.047039 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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