2011-08-21 35 views
0

正如標題中所寫,我有問題將值賦給面板中的文本框。問題是gvAsseti的一個按鈕沒有顯示pnlAsset(裏面有文本框),也沒有將值加載到文本框中。無法爲面板中的文本框分配值

奇怪的是,代碼執行良好,而使用調試器時,我能夠看到正確的值發送到文本框,但由於某種原因,他們不顯示(我得到的都是空的文本框)。

這裏是codefront(遺憾的長度,你可以跳過中間環節,它只有文本框):

<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

將面板放入updatepanel contenttemplate中。由於gvAsseti在updatepanel內部,因此它將刷新updatepanel的內容。

+0

哇!謝謝!這很快! –