FineUI 官方论坛

标题: row.FindControl 在button中 获取不到textbox值 [打印本页]

作者: 红雨飞扬    时间: 2012-6-28 12:11
标题: row.FindControl 在button中 获取不到textbox值
protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0, count = Grid1.Rows.Count; i < count; i++)
            {
                GridRow row = Grid1.Rows[i];
                System.Web.UI.WebControls.DropDownList ddlGender = (System.Web.UI.WebControls.DropDownList)row.FindControl("ddlGender");
                System.Web.UI.WebControls.TextBox tbxGroupName = (System.Web.UI.WebControls.TextBox)row.FindControl("tbxGroupName");
                tbxGroupName.Text = (Convert.ToInt32(tbxGroupName.Text) + 1).ToString();
            }
            // 如果不是重新绑定数据,则需要手工调用UpdateTemplateFields来更新所有TemplateField中的值
            Grid1.UpdateTemplateFields();
        }


作者: sanshi    时间: 2012-6-28 12:34
这个地方没问题,参考示例:http://demo.extasp.net/#/grid/grid_edit.aspx

首先看看设置正确不:http://bbs.extasp.net/forum.php? ... &extra=page%3D1

作者: 红雨飞扬    时间: 2012-6-29 02:14
假如有两列
<ext:TemplateField ColumnID="zh1"  Width="100px">
                                <ItemTemplate>
                                     <asp:TextBox ID="tbxZh1" runat="server" Width="80px" Text='<%# Eval("zh") %>'  ></asp:TextBox>                                
                                </ItemTemplate>
                            </ext:TemplateField>
                                                    <ext:TemplateField ColumnID="zcb1" HeaderText="总成本" Width="100px">
                                <ItemTemplate>
                                      <asp:TextBox ID="tbxZcb" runat="server" Width="80px" Text='<%# Eval("zcb") %>'  ></asp:TextBox>
                                </ItemTemplate>
                            </ext:TemplateField>

显示的时候
  我只显示System.Web.UI.WebControls.TextBox tbxGroupName = (System.Web.UI.WebControls.TextBox)row.FindControl("tbxZcb");
程序会把 FindControl("tbxZh1");的值也读出来

作者: 红雨飞扬    时间: 2012-6-29 03:12
另外:
我找到了出错位置,是因为 FindControl("tbxZh1");后 值在最后一行一下读出,而不是一个一个读出的 请问是什么原因了?
作者: 红雨飞扬    时间: 2012-6-29 03:13
代码如下: <ext:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" Title="表格" Width="800px"
        runat="server" DataKeyNames="Id,xmmc">

                       <Columns>
           
            <ext:BoundField Width="100px" DataField="xmmc" DataFormatString="{0}" HeaderText="名称" />
           
            <ext:BoundField Width="60px" DataField="jldw" HeaderText="单位" />
         
           
            <ext:TemplateField HeaderText="分组" Width="100px">
                <ItemTemplate>
                    <asp:TextBox ID="tbxZcb" runat="server" Width="80px" TabIndex='<%# Container.DataItemIndex + 10 %>'
                        Text='<%# Eval("zcb") %>'></asp:TextBox>
                </ItemTemplate>
            </ext:TemplateField>
        </Columns>

                </ext:Grid>

    <ext:Button runat="server" ID="Button1" OnClick="Button1_Click" Text="获取用户输入的分组值">
    </ext:Button>
    <br />
    <extabel ID="labResult" EncodeText="false" runat="server">
    </extabel>
    <br />
    </form>
    <script type="text/javascript">
        var gridClientID = '<%= Grid1.ClientID %>';

        function registerSelectEvent() {
            var grid = X(gridClientID);
            grid.el.select('.x-grid-tpl input').on('click', function (evt, el) {
                el.select();
            });
        }

        function onReady() {
            var grid = X(gridClientID);

            grid.on('viewready', function () {
                registerSelectEvent();
            });
        }

        function onAjaxReady() {
            registerSelectEvent();
        }
    </script>
  StringBuilder sb = new StringBuilder();
            sb.Append("<table style=\"width:350px;\"><tr><th>编号</th><th>姓名</th><th>用户输入的分组号</th></tr>");
            for (int i = 0, count = Grid1.Rows.Count; i < count; i++)
            {
                sb.Append("<tr>");
                object[] rowDataKeys = Grid1.DataKeys[i];
                sb.AppendFormat("<td>{0}</td>", rowDataKeys[0]);
                sb.AppendFormat("<td>{0}</td>", rowDataKeys[1]);

                GridRow row = Grid1.Rows[i];
                System.Web.UI.WebControls.TextBox tbxGroupName = (System.Web.UI.WebControls.TextBox)row.FindControl("tbxZcb");
                sb.AppendFormat("<td>{0}</td>", tbxGroupName.Text);

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

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

            labResult.Text = sb.ToString();
        }
作者: 红雨飞扬    时间: 2012-6-29 03:27
sanshi 发表于 2012-6-28 12:34
这个地方没问题,参考示例:http://demo.extasp.net/#/grid/grid_edit.aspx

首先看看设置正确不:http://b ...

假如有两列
<ext:TemplateField ColumnID="zh1"  Width="100px">
                                <ItemTemplate>
                                     <asp:TextBox ID="tbxZh1" runat="server" Width="80px" Text='<%# Eval("zh") %>'  ></asp:TextBox>                                
                                </ItemTemplate>
                            </ext:TemplateField>
                                                    <ext:TemplateField ColumnID="zcb1" HeaderText="总成本" Width="100px">
                                <ItemTemplate>
                                      <asp:TextBox ID="tbxZcb" runat="server" Width="80px" Text='<%# Eval("zcb") %>'  ></asp:TextBox>
                                </ItemTemplate>
                            </ext:TemplateField>

显示的时候
  我只显示System.Web.UI.WebControls.TextBox tbxGroupName = (System.Web.UI.WebControls.TextBox)row.FindControl("tbxZcb");
程序会把 FindControl("tbxZh1");的值也读出来

作者: sanshi    时间: 2012-6-29 03:37
红雨飞扬 发表于 2012-6-29 03:12
另外:
我找到了出错位置,是因为 FindControl("tbxZh1");后 值在最后一行一下读出,而不是一个一个读出的  ...

示例和你的程序类似,如果示例没问题的话,还是要仔细检查下配置,以及JSOn.NET的版本
作者: 红雨飞扬    时间: 2012-6-29 06:27
sanshi 发表于 2012-6-29 03:37
示例和你的程序类似,如果示例没问题的话,还是要仔细检查下配置,以及JSOn.NET的版本 ...

终于解决了 重新配置了下webconfig
作者: DT♂杰杰    时间: 2020-10-31 10:40
sanshi 发表于 2012-6-28 12:34
这个地方没问题,参考示例:http://demo.extasp.net/#/grid/grid_edit.aspx

首先看看设置正确不:http://b ...

参考示例是不是中木马了,跳转到赌博网址了




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4