0

ネストされたリピーター内のテキスト ボックスから新しい値を取得する際に問題があります。次のように Text プロパティに静的な値を入力すると、値を取得できますが、新しい値は取得できません。

<ItemTemplate>
    <tr>
        <td width="160">
            <%# Eval("index")%>
        </td>
        <td>
            <%# Eval("Sex") %>
        </td>
        <td align="right">
            <button id="EditPuppy" class="open-dialog" runat="server">
                Rediger hvalp</button>
            <juice:Button TargetControlID="EditPuppy" runat="server" />
        </td>
        <td align="right" width="30">
            <asp:ImageButton runat="server" ID="DeletePuppy" CommandArgument='<%# Eval("dogid").ToString() %>'
                OnClientClick='return confirm("Er du sikker på at du gerne vil slette denne hvalp?")'
                OnCommand="DeletePuppy_Command" SkinID="DefaultDeleteButton" />
        </td>
    </tr>
    <div id="_Default" runat="server" class="basic-dialog" title="Basic dialog" runat="server">
        <asp:TextBox runat="server" ID="TextBoxPuppyName" Text="HEJ" /><!-- The textbox i am trying to get the value from -->
        <asp:Button UseSubmitBehavior="false" runat="server" ID="ButtonPuppyName" CommandArgument="<%# ((RepeaterItem)Container.Parent.Parent).ItemIndex %> <-- Getting parent repaterid"
            CommandName="<%# Container.ItemIndex %> <-- Getting current repeater index -->"
            OnCommand="ButtonPuppyName_Command" Text="Opdater" />
    </div>
    <juice:Dialog TargetControlID="_Default" AutoOpen="false" runat="server" />
</ItemTemplate>

コードビハインド:

protected void ButtonPuppyName_Command(object sender, CommandEventArgs e) {
    int parentRepeaterItemIndex = Convert.ToInt32(e.CommandArgument);
    int childRepeaterItemIndex = Convert.ToInt32(e.CommandName);
    Repeater childReapter = (Repeater)RepeaterShowKuldUserList.Items[parentRepeaterItemIndex].FindControl("RepeaterShowKuldPuppyList");
    TextBox name = (TextBox)childReapter.Items[childRepeaterItemIndex].FindControl("TextBoxPuppyName");
    HttpContext.Current.Response.Write(name.Text);
}

ご協力いただきありがとうございます!。「静的」値を取得できるため、リピーターの作業に入ることを忘れないでください

4

1 に答える 1

0

あなたの問題は、repeater.DataBindを呼び出していることだと思います(ページの読み込み中ですか?)!IsPostBackを追加してから、データをバインドしてください...

他のオプションは、viewState =false..「true」である必要があるということです。

お役に立てば幸い、ラン

于 2012-08-12T09:05:48.847 に答える