Невозможно назначить значения для текстового поля внутри панели - PullRequest
0 голосов
/ 21 августа 2011

Как написано в заголовке, у меня проблемы с назначением значений для текстового поля внутри панели. Проблема в том, что кнопка из gvAsseti не показывает pnlAsset (в котором есть текстовые поля) и не загружает значения в текстовые поля.

Что странно, так это то, что код работает нормально, и при использовании отладчика я смог увидеть, что правильные значения отправляются в текстовые поля, но по какой-то причине они не отображаются (все, что я получаю, это пустые текстовые поля).

Вот код фронта (извините за длину, вы можете пропустить среднюю часть, она имеет только текстовые поля):

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<uc:Firma ID="ucFirma" runat="server"></uc:Firma>
<asp:GridView ID="gvKontakti" runat="server" OnRowCommand="gvKontakti_RowCommand"
    DataKeyNames="idKontakt">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="btnShowAssets" runat="server" CommandArgument='<%# Eval("idKontakt") %>'
                    CommandName="ShowAssets" Text="Prikaži assete" />
                <asp:Button ID="btnAddAsset" runat="server" CommandArgument='<%# Eval("idKontakt") %>'
                    CommandName="AddAsset" Text="Dodaj asset" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="idKontakt" HeaderText="ID" Visible="false" />
        <asp:BoundField DataField="Naziv" HeaderText="Naziv" />
    </Columns>
</asp:GridView>
<asp:Panel ID="pnlAsset" runat="server">
    <table>
        <tr>
            <td>
                Naziv:
            </td>
            <td colspan="3">
                <asp:TextBox ID="txtNaziv" runat="server" Width="430px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Kod 1:
            </td>
            <td>
                <asp:TextBox ID="txtKod1" runat="server"></asp:TextBox>
            </td>
            <td>
                Kod 2:
            </td>
            <td>
                <asp:TextBox ID="txtKod2" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Datum isteka garancije:
            </td>
            <td>
                <asp:TextBox ID="txtGarancija" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Lokacija:
            </td>
            <td colspan="3">
                <asp:TextBox ID="txtLokacija" runat="server" TextMode="MultiLine" Width="455px" Height="200px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Opis:
            </td>
            <td colspan="3">
                <asp:TextBox ID="txtOpis" runat="server" TextMode="MultiLine" Width="455px" Height="200px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Aktivna imovina:
            </td>
            <td>
                <asp:CheckBox ID="chkAktivna" runat="server" />
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnSave" runat="server" Text="Spremi" OnClick="btnSave_Click" />
            </td>
        </tr>
    </table>
</asp:Panel>
<asp:UpdatePanel ID="upAsseti" runat="server">
    <ContentTemplate>
        <asp:GridView ID="gvAsseti" runat="server" onrowcommand="gvAsseti_RowCommand">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Button ID="btnShowAsset" runat="server" CommandArgument='<%# Eval("idAsset") %>'
                            CommandName="ShowAsset" Text="Prikaži asset" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>

А также код позади:

        protected void gvAsseti_RowCommand(object sender, GridViewCommandEventArgs e)
    {

        int idFirma = Convert.ToInt32(Request.QueryString["idt"]);
        int idAsset = Convert.ToInt32(e.CommandArgument);

        TicketingSystemEntities db = new TicketingSystemEntities();

        if (e.CommandName=="ShowAsset")
        {
            var asset = (from a in db.Assets
                         where a.idAsset == idAsset
                         select a).SingleOrDefault();

            pnlAsset.Visible = true;

            txtGarancija.Text = asset.DatumGarancije.ToString();
            txtKod1.Text = asset.Kod1;
            txtKod2.Text = asset.Kod2;
            txtLokacija.Text = asset.Lokacija;
            txtNaziv.Text = asset.Naziv;
            txtOpis.Text = asset.Opis;

            if (asset.Aktivan == true)
            {
                chkAktivna.Checked = true;
            }
            else
            {
                chkAktivna.Checked = false;
            }
        }
    }
}

Любая помощь будет оценена.

1 Ответ

1 голос
/ 21 августа 2011

Поместите панель внутри шаблона содержимого панели обновления. Так как gvAsseti находится внутри панели обновления, поэтому он будет обновлять содержимое панели обновления при обратной передаче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...