FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 2045|回复: 2
打印 上一主题 下一主题

GRID中使用ASP的DropDownList控件,OnSelectedIndexChanged只对第一行起

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-29 09:23:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
三石大人您好!我在GRID中使用了ASP的DropDownList控件,但是在使用中OnSelectedIndexChanged只对第一行起作用!这是什么原因呢?

  1. <form id="form1" runat="server">
  2. <ext:PageManager ID="PageManager1" runat="server" AjaxAspnetControls="aspDdl,aspTb" />
  3. <ext:Grid ID="gridTest" ShowBorder="true" ShowHeader="true" EnableCheckBoxSelect="True" ForceFitAllTime="True"
  4. Title="明细" EnableMultiSelect="True" EnableRowNumber="True" runat="server" OnRowDataBound="gridTest_RowDataBound">
  5. <Columns>
  6. <ext:TemplateField HeaderText="选择" Width="100px">
  7. <ItemTemplate>
  8. <asp:DropDownList runat="server" ID="aspDdl" Width="80%" OnSelectedIndexChanged="aspDdl_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
  9. </ItemTemplate>
  10. </ext:TemplateField>

  11. <ext:TemplateField HeaderText="文本" Width="100px" >
  12. <ItemTemplate>
  13. <asp:TextBox ID="aspTb" runat="server" Width="80%" TabIndex='<%# Container.DataItemIndex + 10 %>'
  14. Text='<%# Eval("Description") %>'></asp:TextBox>
  15. </ItemTemplate>
  16. </ext:TemplateField>

  17. </Columns>
  18. </ext:Grid>



  19. </form>
复制代码
  1. public partial class WebForm1 : System.Web.UI.Page
  2. {
  3. protected void Page_Load(object sender, EventArgs e)
  4. {
  5. if (IsPostBack)
  6. return;

  7. gridTest.DataSource = GetDdlBind();
  8. gridTest.DataBind();
  9. }

  10. protected void gridTest_RowDataBound(object sender, FineUI.GridRowEventArgs e)
  11. {
  12. GridRow row = gridTest.Rows[e.RowIndex];

  13. var aspDdlCompany = (AspNet.DropDownList)row.FindControl("aspDdl");
  14. aspDdlCompany.DataSource = GetDdlBind();
  15. aspDdlCompany.DataTextField = "Product";
  16. aspDdlCompany.DataValueField = "Version";
  17. aspDdlCompany.DataBind();

  18. }

  19. protected void aspDdl_SelectedIndexChanged(object sender, EventArgs e)
  20. {
  21. GridRow row = gridTest.Rows[gridTest.SelectedRowIndex];
  22. var aspDdl = (AspNet.DropDownList)row.FindControl("aspDdl");
  23. var aspTb = (AspNet.TextBox)row.FindControl("aspTb");

  24. aspTb.Text = aspDdl.SelectedValue;
  25. }


  26. private DataTable GetDdlBind()
  27. {
  28. DataTable tblDatas = new DataTable("Datas");
  29. DataColumn dc = null;
  30. dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
  31. dc.AutoIncrement = true;//自动增加
  32. dc.AutoIncrementSeed = 1;//起始为1
  33. dc.AutoIncrementStep = 1;//步长为1
  34. dc.AllowDBNull = false;//

  35. dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
  36. dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
  37. dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));

  38. DataRow newRow;
  39. newRow = tblDatas.NewRow();
  40. newRow["Product"] = "大话西游";
  41. newRow["Version"] = "2.0";
  42. newRow["Description"] = "我很喜欢";
  43. tblDatas.Rows.Add(newRow);

  44. newRow = tblDatas.NewRow();
  45. newRow["Product"] = "梦幻西游";
  46. newRow["Version"] = "3.0";
  47. newRow["Description"] = "比大话更幼稚";
  48. tblDatas.Rows.Add(newRow);
  49. return tblDatas;
  50. }
  51. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2012-12-31 21:02:25 | 只看该作者
测试了一下,两行中的下拉列表都能触发,只不过在更新模板列之后,要手工调用 UpdateTemplateFields:
  1. protected void aspDdl_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             GridRow row = gridTest.Rows[gridTest.SelectedRowIndex];
  4.             var aspDdl = (AspNet.DropDownList)row.FindControl("aspDdl");
  5.             var aspTb = (AspNet.TextBox)row.FindControl("aspTb");

  6.             aspTb.Text = aspDdl.SelectedValue;

  7.             gridTest.UpdateTemplateFields();
  8.         }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
 楼主| 发表于 2013-1-2 13:16:42 | 只看该作者
原来如此,谢谢三石了{:soso_e100:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-29 11:39 , Processed in 0.045251 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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