加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

从转发器asp.net c中的文本框中获取值

发布时间:2020-12-16 03:26:42 所属栏目:asp.Net 来源:网络整理
导读:我一直试图让这个工作几个小时,但谷歌没有任何东西可以帮助我解决问题. 我有一个非常简单的转发器控件: asp:Panel ID="userDefDiv" Visible="false" runat="server" asp:Repeater ID="userDefRepeater" EnableViewstate="false" runat="server" ItemTemplat
我一直试图让这个工作几个小时,但谷歌没有任何东西可以帮助我解决问题.

我有一个非常简单的转发器控件:

<asp:Panel ID="userDefDiv" Visible="false" runat="server">
                <asp:Repeater ID="userDefRepeater" EnableViewstate="false" runat="server">
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" EnableViewState="false"></asp:TextBox><br/>
                    </ItemTemplate>
                </asp:Repeater>
            </asp:Panel>

userDefDiv面板位于另一个面板内,该面板位于contentPLaceHolder中.
userDefDiv的父面板没有“enableviewstate =”false“”.

所以.
这个页面上的所有内容都发生在几个linkbuttons_click之后.所以在page_load期间没有任何反应.在我点击另一个链接按钮后,我想从转发器内的不同文本框中获取数据.

C#代码:

这是创建所有转发器项的代码.

public void createUserDef()
{
        DataTable userDefData;
        userDefData = ..... (data from Database.)

            userDefDiv.Visible = true;
            userDefRepeater.DataSource = userDefData;
            userDefRepeater.DataBind();
}

linkbutton的代码:

protected void linkButton_Click(object sender,EventArgs e)
{
    createUserDef();

    Label2.Visible = true;
    foreach (RepeaterItem item in userDefRepeater.Items)
    {
        TextBox box = (TextBox)item.FindControl("TextBox1");
        string b = box.Text;
        Label2.Text += b + " . ";
    }
}

如您所见,我在点击期间再次创建转发器.但我唯一可以在label2中阅读.是一个“.”,在每个文本框的点上.
但文本框中的文本为空..
我究竟做错了什么??

谢谢阅读!
马蒂亚斯

解:

>将EnableVIewState =“true”添加到文本框&中继器.
>在获取值之前不要调用dataBind().

谢谢!

解决方法

您需要将EnableViewState设置为“true”,以使链接按钮在转发器中正常工作

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读