操作目的是将一条数据库的信息在aspx显示并可以编辑,然后在aspx.cs保存编辑。 
 
file.aspx.cs 
public partial class news : sql
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Repeater_news.DataSource = sqls.bind_news(15); 
            Repeater_news.DataBind();
        }
    }
public void Button_EDIT_Click(object sender, EventArgs e) 
    { 
     TextBox txt = ((TextBox)Repeater_news.FindControl("TextBox_title"));
     string value = txt.Text;     
     //file1.aspx.cs 可以显示,但没有从file1.aspx中传过来值? 使用了Repeater和ItemTemplate
      //file2.aspx.cs 没有显示,但有从file2.aspx中传过来值? 没有使用Repeater和ItemTemplate
     //如何才能在aspx显示并可以编辑,然后在aspx.cs保存编辑?
    } 
... file1.aspx 
<form id="form2" runat="server"> 
<asp:Repeater ID="Repeater_news" runat="server"> 
  <ItemTemplate> 
    <asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
    //显示了title="测试编辑后的数据更新" 
  </ItemTemplate>  
</asp:Repeater> 
<asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
</form> file2.aspx 
<form id="form2" runat="server"> 
<asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
    //显示了title="测试编辑后的数据更新" 
<asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
</form> 

解决方案 »

  1.   

    foreach (RepeaterItem item in Repeater_news.Items)
    {
          TextBox txt = ((TextBox)item.FindControl("TextBox_title")); 
    }
      

  2.   

    有没有搞错,你的TextBox在Repeater里,而你的Button按钮在Repeater外
    你点Button,想在file2.aspx 打开所有的记录啊<form id="form2" runat="server"> 
    <asp:Repeater ID="Repeater_news" runat="server"> 
    <ItemTemplate> 
        <asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
        //显示了title="测试编辑后的数据更新" 
      </ItemTemplate>  
    </asp:Repeater> 
    <asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
    </form> 
      

  3.   

    用findcontrol可以找到TEXTBOX, LZ是不是想批操作啊???
      

  4.   

    谢谢楼上,报错
    Failed to convert parameter value from a TextBox to a String.
      

  5.   

    谢谢xghtom,Button在里/外都试过,仍然传不了值?
    为什么
     file1.aspx.cs 可以显示,但没有从file1.aspx中传过来值? 使用了Repeater和ItemTemplate 
     file2.aspx.cs 没有显示,但有从file2.aspx中传过来值? 没有使用Repeater和ItemTemplate令人琢磨不定的Repeater和ItemTemplate
      

  6.   

    设计上有问题,或者你把有些东西省略没帖出来
    建议TextBox、Button都放Repeater里面,Button做成ImageButton,放个图很好看
    处理起来就很好办了file2.aspx 
    <form id="form2" runat="server"> 
    <asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
        //显示了title="测试编辑后的数据更新" 
    <asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
    </form> 如果Button一定要在外面(界面、布局问题),Repeater里那么多(Item)项你怎么确定要在file2.aspx打开什么啊,你的file2.aspx里又才一个TextBox显示,建议Repeater里每项前可以用个radiobutton,Button打开页面传递ID到file2.aspx,file2.aspx里通过ID重新绑定数据!!// 代码没有测试,只提供个方法
    public void Button_EDIT_Click(object sender, EventArgs e) 

        foreach (RepeaterItem item in Repeater_news.Items)
        {
            RadioButton rbtn = ((RadioButton )item.FindControl("TextBox_title")); 
            if (rbtn.Checked)
            {
               //.................
               //TextBox txt = ((TextBox)item.FindControl("TextBox_title")); 
                Response.Redirect(.....);
            }
            break;
        }      
    }
      

  7.   

    记得加上if(!ISPOSTBACK)
    {}
      

  8.   

    if(!ISPOSTBACK)
    {}
    加在哪?
      

  9.   

    操作目的是将一条数据库的信息在aspx显示并可以编辑,然后在aspx.cs保存编辑。
    如何书写file.aspx 和 file.aspx.cs? 例题如楼主提问
      

  10.   

    没时间,瞎搞了点,看能不能给你点提示。<body>
        <form id="form1" runat="server">
        <div>
            <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                <ItemTemplate>
                    <asp:TextBox ID="tbxDesc" Text='<%# DataBinder.Eval(Container.DataItem,"name") %>' runat="server"></asp:TextBox>
                    <asp:Button  ID="btnSubmit" Text="修改" CommandName="modify" runat="server"></asp:Button>
                </ItemTemplate>
            </asp:Repeater>
            <br/>
        </div>
        </form>
    </body>using System.Data.Odbc;public partial class rtp_textbox : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Repeater1.DataSource = Bind().Tables[0];
                Repeater1.DataBind();
            }
        }    private DataSet Bind()
        {
            string strcn = @"Dsn=ss7server;DataBase=NTP2000;uid=zxt2000;pwd=zxt2000;";
            OdbcConnection mycn = new OdbcConnection(strcn);
            string sql = "select * from ts_area";
            mycn.Open();
            OdbcDataAdapter myDa = new OdbcDataAdapter(sql, mycn);
            DataSet myDs = new DataSet();
            myDa.Fill(myDs, "s");
            mycn.Close();
            return myDs;
        }    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "modify")
            {
                TextBox tbx = (TextBox)e.Item.FindControl("tbxDesc");
                Response.Redirect("file2.aspx?aa=" + tbx.Text);           
            }
        }
    }
      

  11.   


    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "modify")
            {
                TextBox tbx = (TextBox)e.Item.FindControl("tbxDesc");
                Response.Write(tbx.Text);
                //Response.Redirect("file2.aspx?aa=" + tbx.Text);           
            }
        }
      

  12.   

    你们看看楼主的要求再回答一条数据库的信息楼主是要修改一条数据而已,你是不是根据ID传了个值修改数据啊之要一句话就够了楼主,不要用Repeater用Formview.呵呵TextBox txt = ((TextBox)FormView1.FindControl("TextBox_title"));就能找到了。哈哈,简单吧。我发现我的理解力是很强的。楼主结帖吧
    。 
      

  13.   

    使用Repeater,Formview结果一样
    xghtom 
    TextBox tbx = (TextBox)e.Item.FindControl("tbxDesc"); (Repeater)
    cteddy 
    TextBox txt = ((TextBox)FormView1.FindControl("TextBox_title")); (Formview)
    出错?加了.ToString()
    xghtom 
    TextBox tbx = (TextBox)e.Item.FindControl("tbxDesc").ToString(); (Repeater)
    cteddy 
    TextBox txt = ((TextBox)FormView1.FindControl("TextBox_title")).ToString(); (Formview)结果如下,奇怪?
    System.Web.UI.WebControls.TextBox //返回了这段文字?为什么使用Repeater,Formview等,就无法返回值,而不是使用Repeater,Formview等,就可以返回值?
    file1.aspx 
    <form id="form2" runat="server"> 
    <asp:Repeater ID="Repeater_news" runat="server"> 
    <ItemTemplate> 
        <asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
        //显示了title="测试编辑后的数据更新,使用了Repeater,Formview等" 
      </ItemTemplate>  
    </asp:Repeater> 
    <asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
    </form> file2.aspx 
    <form id="form2" runat="server"> 
    <asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
        //显示了title="测试编辑后的数据更新,没有使用Repeater,Formview等" 
    <asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
    </form> 
        
      

  14.   

    为什么使用Repeater,Formview等,就无法返回值,而不是使用Repeater,Formview等,就可以返回值?
     
    file1.aspx 
    <form id="form2" runat="server"> 
    <asp:Repeater ID="Repeater_news" runat="server"> 
    <ItemTemplate> 
        <asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
        //显示了title="测试编辑后的数据更新,使用了Repeater,Formview等,可以显示但无法获得返回值" 
      </ItemTemplate>  
    </asp:Repeater> 
    <asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
    </form> file2.aspx 
    <form id="form2" runat="server"> 
    <asp:TextBox ID="TextBox_title" runat="server" Text=' <%# Bind("title")%>> </asp:TextBox> 
        //显示了title="测试编辑后的数据更新,没有使用Repeater,Formview等,没有显示但可以获得返回值" 
    <asp:Button ID="Button_EDIT" runat="server" Text="确定修改" OnClick="Button_EDIT_Click" /> 
    </form> 
      

  15.   

    解决了,试了几种方式,其中一种适合
    TextBox txt = ((TextBox)Repeater_news.FindControl("TextBox_title")).Text; //少了.Text
    谢谢xghtom的提示,加分!