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