Repeater里放Itemtemplate 后台如何取到Itemtemplate里TextBox的值

时间:2022-01-08 10:12:57
页面代码
<asp:Repeater ID="rep_message" runat="server">
                <HeaderTemplate>
                    <tbody>
                </HeaderTemplate>
                <ItemTemplate>
                    <tr class="odd">
                        <td align="center">
                            <asp:TextBox ID="txtNo" runat="server" MaxLength="2" Style="width: 20px;" CommandName="お知らせSEQ"
                                Text='<%#Eval("INFO_SEQ") %>'></asp:TextBox>
                        </td>
                        <td align="center">
                            <asp:TextBox ID="txtDate" runat="server" MaxLength="10" Style="width: 70px;" CommandName="登録日付"
                                Text='<%#Eval("USER_ENTRY_YMD","{0:yyyy/MM/dd}")%>'></asp:TextBox>
                        </td>
                        <td align="left">
                            <asp:TextBox ID="txtMessage" runat="server" Style="width: 570px;" CommandName="お知らせ内容"
                                Text='<%#Eval("INFO_NAIYO") %>'></asp:TextBox>
                        </td>
                        <td colspan="2">
                            <nobr>
                            <asp:TextBox ID="txtDateFrom" runat="server" MaxLength="10" style="width:70px;" CommandName = "表示期間(From)" 
                            Text = '<%#Eval("HYOJI_YMD_FROM","{0:yyyy/MM/dd}")%>'></asp:TextBox>
                            ~<asp:TextBox ID="txtDateTo" runat="server" MaxLength="10" style="width:70px;" CommandName = "表示期間(To)" 
                            Text = '<%#Eval("HYOJI_YMD_TO","{0:yyyy/MM/dd}") %>'></asp:TextBox>
                            </nobr>
                        </td>
                    </tr>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <tr class="even">
                        <td align="center">
                            <asp:TextBox ID="txtNo" runat="server" MaxLength="2" Style="width: 20px;" CommandName="お知らせSEQ"
                                Text='<%#Eval("INFO_SEQ") %>'></asp:TextBox>
                        </td>
                        <td align="center">
                            <asp:TextBox ID="txtDate" runat="server" MaxLength="10" Style="width: 70px;" CommandName="登録日付"
                                Text='<%#Eval("USER_ENTRY_YMD","{0:yyyy/MM/dd}") %>'></asp:TextBox>
                        </td>
                        <td align="left">
                            <asp:TextBox ID="txtMessage" runat="server" Style="width: 570px;" CommandName="お知らせ内容"
                                Text='<%#Eval("INFO_NAIYO") %>'></asp:TextBox>
                        </td>
                        <td colspan="2">
                            <nobr><asp:TextBox ID="txtDateFrom" runat="server" MaxLength="10" style="width:70px;" CommandName = "表示期間(From)" Text = '<%#Eval("HYOJI_YMD_FROM","{0:yyyy/MM/dd}") %>'></asp:TextBox>~<asp:TextBox ID="txtDateTo" runat="server" MaxLength="10" style="width:70px;"  CommandName = "表示期間(To)" Text = '<%#Eval("HYOJI_YMD_TO","{0:yyyy/MM/dd}") %>'></asp:TextBox></nobr>
                        </td>
                    </tr>
                </AlternatingItemTemplate>
                <FooterTemplate>
                    </tbody>
                </FooterTemplate>
            </asp:Repeater>

15 个解决方案

#1



if(e.item.itemType==listItemType.item||e.item.itemType.AlternatingItem)
{
textbox tb=e.item.findControl("textbox1") as textbox;
}

#2


TextBox tb=Repeater1.Items[0].FindControl("TextBox1") as TextBox;

#3


遍历repeater 的Item 用FindControl 这个方法

#4



 if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType ==ListItemType.Item)
            {
textbox tb=e.item.findControl("textbox1") as textbox;

}

#5


tb 为什么点不出来呢?

#6


引用 5 楼  的回复:
tb 为什么点不出来呢?



  protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                Repeater rp = e.Item.FindControl("Repeater2") as Repeater;
                HiddenField hf = e.Item.FindControl("HiddenField1") as HiddenField;
                HtmlTableCell tc = e.Item.FindControl("unit_cell") as HtmlTableCell;

                if (rp != null)
                {
                    DataSet ods = oContent.GetAllDynamicFromView("MODULE_ID='" + hf.Value + "' AND ISDELETE='0'", "");
                    rp.DataSource = ods.Tables[0];
                    rp.DataBind();
                    //if (ods.Tables[0].Rows.Count > 1)
                    //{
                    //    tc.RowSpan = ods.Tables[0].Rows.Count;
                    //}
                    rp.ItemCommand += new RepeaterCommandEventHandler(rp_ItemCommand);
                }
            }
        }



不懂什么意思,像这样写

#7


不好意思 我没学过.net 这段代码看不懂
            /*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
            {
                textbox tb = e.item.findControl("txtNo") as textbox;
            }*/
tb.
我是说 这个 tb. 不出属性啊

#8


/*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
  {
  textbox tb = e.item.findControl("txtNo") as textbox;
tb.
  }*/

#9


引用 7 楼  的回复:
不好意思 我没学过.net 这段代码看不懂
  /*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
  {
  textbox tb = e.item.findControl("txtNo") as textbox;
  }*/
tb.
我是说 这个 tb. 不出属性啊


打错了把,自己照着打一遍

#10


       protected void btnUpdate_Click(object sender, EventArgs e)
        {

            
             
        }
是用这个e点出的 e.Item? 点不出 啊

#11


引用 10 楼  的回复:

protected void btnUpdate_Click(object sender, EventArgs e)
  {

   //这个是按钮的方法,跟 控件本身不相关不能用,除非你在这里去获取那个控件再去找对应的textbox
   
  }


是用这个e点出的 e.Item? 点不出 啊

#12



protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
 //这个是控件本身自带的方法.所以这里可以点出来的
}

#13


数据绑定 我已经绑了 我是想 如何获得页面上修改的信息 好 修改数据库表的 信息啊

#14


那你就直接这样找
rep_message.Items[0].FindControl("txtNo") as TextBox;
要保证rep_message.Items集合大于零

#15


引用 7 楼  的回复:
不好意思 我没学过.net 这段代码看不懂
  /*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
  {
  textbox tb = e.item.findControl("txtNo") as textbox;
  }*/
tb.
我是说 这个 tb. 不出属性啊

textbox 输入的时候让它自动生成 是TextBox 蓝色的  “txtNo”的值是你要取值的那个对话框的ID  

#1



if(e.item.itemType==listItemType.item||e.item.itemType.AlternatingItem)
{
textbox tb=e.item.findControl("textbox1") as textbox;
}

#2


TextBox tb=Repeater1.Items[0].FindControl("TextBox1") as TextBox;

#3


遍历repeater 的Item 用FindControl 这个方法

#4



 if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType ==ListItemType.Item)
            {
textbox tb=e.item.findControl("textbox1") as textbox;

}

#5


tb 为什么点不出来呢?

#6


引用 5 楼  的回复:
tb 为什么点不出来呢?



  protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                Repeater rp = e.Item.FindControl("Repeater2") as Repeater;
                HiddenField hf = e.Item.FindControl("HiddenField1") as HiddenField;
                HtmlTableCell tc = e.Item.FindControl("unit_cell") as HtmlTableCell;

                if (rp != null)
                {
                    DataSet ods = oContent.GetAllDynamicFromView("MODULE_ID='" + hf.Value + "' AND ISDELETE='0'", "");
                    rp.DataSource = ods.Tables[0];
                    rp.DataBind();
                    //if (ods.Tables[0].Rows.Count > 1)
                    //{
                    //    tc.RowSpan = ods.Tables[0].Rows.Count;
                    //}
                    rp.ItemCommand += new RepeaterCommandEventHandler(rp_ItemCommand);
                }
            }
        }



不懂什么意思,像这样写

#7


不好意思 我没学过.net 这段代码看不懂
            /*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
            {
                textbox tb = e.item.findControl("txtNo") as textbox;
            }*/
tb.
我是说 这个 tb. 不出属性啊

#8


/*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
  {
  textbox tb = e.item.findControl("txtNo") as textbox;
tb.
  }*/

#9


引用 7 楼  的回复:
不好意思 我没学过.net 这段代码看不懂
  /*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
  {
  textbox tb = e.item.findControl("txtNo") as textbox;
  }*/
tb.
我是说 这个 tb. 不出属性啊


打错了把,自己照着打一遍

#10


       protected void btnUpdate_Click(object sender, EventArgs e)
        {

            
             
        }
是用这个e点出的 e.Item? 点不出 啊

#11


引用 10 楼  的回复:

protected void btnUpdate_Click(object sender, EventArgs e)
  {

   //这个是按钮的方法,跟 控件本身不相关不能用,除非你在这里去获取那个控件再去找对应的textbox
   
  }


是用这个e点出的 e.Item? 点不出 啊

#12



protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
 //这个是控件本身自带的方法.所以这里可以点出来的
}

#13


数据绑定 我已经绑了 我是想 如何获得页面上修改的信息 好 修改数据库表的 信息啊

#14


那你就直接这样找
rep_message.Items[0].FindControl("txtNo") as TextBox;
要保证rep_message.Items集合大于零

#15


引用 7 楼  的回复:
不好意思 我没学过.net 这段代码看不懂
  /*if (e.Item.itemType == listItemType.item || e.item.itemType.AlternatingItem)
  {
  textbox tb = e.item.findControl("txtNo") as textbox;
  }*/
tb.
我是说 这个 tb. 不出属性啊

textbox 输入的时候让它自动生成 是TextBox 蓝色的  “txtNo”的值是你要取值的那个对话框的ID