当前位置:编程学习 > C#/ASP.NET >>

repeater控件中如何使用按钮?

repeater控件中如何使用按钮?
当点击按钮的同时,如何获取与该按钮在同一个ITEM项里的TEXTBOX的值?
我是要提交到数据库 --------------------编程问答-------------------- UP一下吧,
网上很多。 --------------------编程问答-------------------- 点击按钮时,ItemCommand事件里面:
((TextBox)(rep.Items[e.Item.ItemIndex].Controls[1])).Text 就是TextBox的值。 
Controls[1]是第二个控件,自己数对了控件位置应该没问题。
--------------------编程问答-------------------- .Controls[1]这个位置要对应的是一个TextBox空间。 --------------------编程问答-------------------- 找了好多,可是不合适
这是布局
                <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                <HeaderTemplate><font color=red>  说明:本版管理只显示未得到回答的问题</font></HeaderTemplate>
                    <ItemTemplate>
          <table border="0" cellpadding="0" cellspacing="0" class="title">
            <tr>
              <td width="3%" background="../images/fbg.jpg"><img src="../images/wtpic.gif" width="35" height="35" /></td>
              <td width="88%" background="../images/fbg.jpg"><strong>问题信息</strong>(编号:<asp:Label ID="lab_bianhao" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"que_id")%>'></asp:Label>)</td>
              <td width="9%" background="../images/fbg.jpg"><a href="#"></a></td>
            </tr>
          </table>
          <table border="0" cellpadding="0" cellspacing="0" class="TBlist">
            <tr>
              <td width="58%">标题:<%#DataBinder.Eval(Container.DataItem,"que_name")%></td>
              <td width="24%">提问时间:<%#DataBinder.Eval(Container.DataItem,"que_quetime") %> </td>
              <td width="18%">提问人:<%#DataBinder.Eval(Container.DataItem,"que_username")%> </td>
            </tr>
            <tr>
              <td>IP:<%#DataBinder.Eval(Container.DataItem,"que_userip") %></td>
              <td colspan="2">E-mail:<%#DataBinder.Eval(Container.DataItem,"que_useremail")%></span></td>
            </tr>
            <tr>
              <td colspan="3" valign="top">问题内容:</td>
            </tr>
            <tr>
              <td colspan="3" valign="top"><%#DataBinder.Eval(Container.DataItem,"que_content") %></td>
            </tr>
          </table>
          <table border="0" cellpadding="0" cellspacing="0" class="title">
            <tr>
              <td width="3%" background="../images/fbg.jpg"><img src="../images/wtpic.gif" width="35" height="35" /></td>
              <td width="88%" background="../images/fbg.jpg">回答</td>
              <td width="9%" background="../images/fbg.jpg"><a href="#"></a></td>
            </tr>
          </table>
          <table border="0" cellpadding="0" cellspacing="0" class="TBlist">
            <tr>
              <td width="423">
                  回答时间:<%#DataBinder.Eval(Container.DataItem,"que_anstime") %></td>
              <td width="289">
                  回答人:<%#DataBinder.Eval(Container.DataItem,"que_sysuser") %></td>
            </tr>
            <tr>
              <td colspan="2" valign="top">回答内容</td>
            </tr>
            <tr>
              <td colspan="2" valign="top">
                  <asp:TextBox ID="txt_huida" runat="server" TextMode="MultiLine" Width="600px" Height="80px"></asp:TextBox>
                  </td>
            </tr>
                    <tr>
              <td colspan="2" align=center>  <asp:Button ID="btn_huida" runat="server" Text="提交回答" CommandName="提交回答" CommandArgument= '<%#DataBinder.Eval(Container.DataItem,"que_id")%>'/></td>
            </tr>
          </table>
          </ItemTemplate>
                </asp:Repeater>

不知道怎么弄了? --------------------编程问答-------------------- 自己慢慢数吧,好像:<%#DataBinder.Eval(Container.DataItem,"que_sysuser") %>也算一个控件。
多尝试尝试。 --------------------编程问答--------------------
 MARK --------------------编程问答-------------------- 要么把按钮弄到Reperater外面来吧 --------------------编程问答-------------------- 我做的是取DataList..应该差不多吧
TextBox _txt=(TextBox)DataList1.Items[0].FindControl["TextBox1"];//TextBox1是控件名称

_text.Text()


呵呵.我也不知道行不行.因为我取DataListItem..模板里的值插入数据库时也这样的.Items[0]这里都是0~~~

希望有用..


--------------------编程问答-------------------- 我做了一个例子.仅供参考

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
  <asp:Repeater runat="server" iD="rptTest">
  <itemtemplate>
  <div>
   <asp:TextBox id="txt" text='<%# Container.DataItem.ToString() %>' runat="server" />
   <asp:Button id="btn" text="提交" onclick="TestBtn" runat="server"  />
    </div>
  </itemtemplate>
  </asp:Repeater>
    </form>
</body>
</html>




    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            string[] s = new string[] { "1", "2", "3", "4", "5" };

            this.rptTest.DataSource = s;
            this.rptTest.DataBind();
        }
    }
    protected void TestBtn(object sender, EventArgs e)
    {
        Button bt = sender as Button;

        RepeaterItem ri = bt.Parent as RepeaterItem;

        TextBox tx = ri.FindControl("txt") as TextBox;
        if (!object.Equals(tx, null))
        {
            Response.Write(tx.Text);
        }
        
    }

补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,