Pertanyaan Kotak centang tidak terlihat pada node kontrol TreeView ketika ditempatkan di IIS


Saya menghadapi masalah berkaitan dengan TreeView kontrol. Saya memiliki kotak centang diaktifkan untuk node TreeView kontrol. Ini berfungsi dengan baik dan ditampilkan dengan benar. Tetapi ketika saya menyebarkan yang sama ke IIS, kotak centang tidak terlihat di sana. Itu tidak diberikan sama sekali. Di bawah ini adalah TreeView:

<asp:TreeView id="tvExplicit"
        EnableClientScript="true"
        PopulateNodesFromClient="true"  
        ExpandDepth="0" 
        ShowLines="true" 
        ShowExpandCollapse="true"
        ShowCheckBoxes="Root"
        OnTreeNodePopulate="tvExplicit_TreeNodePopulate"
        Width="1px"
        runat="server">

    <Nodes>
    </Nodes>

  </asp:TreeView> 

Kode ini berfungsi dengan baik di komputer lokal saya. Namun tidak ketika disebarkan di IIS. Semuanya berfungsi kecuali menampilkan kotak centang untuk root node.

Catatan: Kotak centang tidak ditampilkan sebagai HTML sama sekali. Jadi itu bukan CSS memblokirnya menurut saya

Memperbarui : Saya dapat mengetahui bahwa versi halaman sebelumnya di-cache dalam IIS dan tidak diatur ulang bahkan setelah kolam APP disetel ulang.

2nd Update: Id Klien dari kotak centang di localhost adalah ctl00_MainContent_tvExplicitn0CheckBox, ctl00_MainContent_tvExplicitn1CheckBox, dll. Jadi itu bisa menjadi alasan masalah ini. Satu hal lagi yang saya perhatikan adalah perbedaan dalam ID klien yang dihasilkan untuk kontrol di localhost dan di server yang disebarkan ke IIS. Di bawah ini adalah yang diberikan <a> yang merupakan bagian dari kontrol treeview di keduanya:

  1. IIS: MainContent_tvExplicitt0,MainContent_tvExplicitt1 ini adalah ID dari link node treeview
  2. LocalHost: ctl00_MainContent_tvExplicitt0,ctl00_MainContent_tvExplicitt2, dll

Jadi dapatkah masalah terkait dengan bagaimana kontrol sebenarnya diberikan di lingkungan yang berbeda yaitu server localhost dan IIS saya. Di localhost, .Net 3.5 framework ada di sana dan di server IIS .Net 4 . Jadi itu bisa karena ini sebagai client ID generasi berbeda dalam kedua versi.

Pembaruan 3 Juga, saya mengubah versi kerangka ke .net 4 di localhost, tetapi tidak mereproduksi masalah. Ini juga menambah controlRenderingCompatibilityVersion="3.5" di web.config. Lalu saya menyebarkan kode yang sama ke IIS, dan saya mendapat kesalahan itu controlRenderingCompatibilityVersion bukan tag yang valid. Apakah itu berarti IIS server tidak berjalan .net 4.Saya tidak memiliki akses ke server IIS sendiri.

Pembaruan ke-4: Aplikasi dikonfigurasi dengan .net 4 versi di IIS.

Pembaruan ke-5 Saya menyebarkan build yang sama ke server IIS yang lain pada mesin yang berbeda (ini adalah server lama kami di mana aplikasi kami berjalan). Dan kotak centang terlihat pada itu. Versi kerangka .net sama seperti pada satu masalah yang dihadapi. Meminta tim yang relevan untuk memperbarui pengaturan yang sama seperti di server ini ke server yang menghadapi masalah. Tetap saja itu tidak membantu. Jadi, sepertinya masalah dengan cara situs web dikonfigurasi pada server baru di mana kotak centang tidak terlihat


32
2018-01-24 12:22


asal


Jawaban:


Belum ada jawaban, diperlukan untuk menampilkan gambar, baik saya mencoba yang sama, menggunakan kode ini di aspx: (Saya tidak mengubah pengaturan apa pun di IIS, tidak ada apa pun di aspx juga, menciptakan solusi biasa >> menambahkan tampilan pohon dan disebarkan.)

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <div> 
        <asp:TreeView ID="TreeTest"
            EnableClientScript="true"
            PopulateNodesFromClient="true"
            ExpandDepth="0"
            ShowLines="true"
            ShowExpandCollapse="true"
            ShowCheckBoxes="Root"
            OnTreeNodePopulate="TreeTest_TreeNodePopulate"
            Width="1px"
            runat="server"> 
            <Nodes>
                <asp:TreeNode Text="Something">
                    <asp:TreeNode Text="11"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="Something">
                     <asp:TreeNode Text="11"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="Something"></asp:TreeNode>
            </Nodes> 
        </asp:TreeView>  
    </div>
</asp:Content>

Check in di lokal saya bisa melihat ini: enter image description here

Dikerahkan dalam IIS versi 6.2, windows server 2012, bisa melihat ini: enter image description here

Pasti ada hal lain yang mencegah kotak centang di halaman Anda. Tampilkan lebih banyak kode.


8
2018-02-02 08:00



Kadang-kadang IIS dikonfigurasi untuk versi IE yang berbeda dari versi lokal Anda, ini dapat menyebabkan beberapa masalah kompatibilitas.

Saya selalu menambahkan yang berikut ke elemen kepala saya di file html saya:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

Ada info lebih lanjut di sini:

https://msdn.microsoft.com/en-us/library/jj676913(v=vs.85).aspx


5
2018-01-31 22:20



Jika Anda ingin menguji apakah itu nama kontrol dan Anda menggunakan kode untuk membuat kotak centang, Anda bisa mengatur properti clientid untuk kontrol Anda bekerja dengan Static, memperbarui kode yang mengelola itu untuk hanya menggunakan ID kontrol , dan kemudian lihat apakah kode berfungsi.


0
2018-02-21 15:12



Pergi ke IE \ tools \ Compatibilty view Setting dan tekan Tambah untuk menambahkan URL Anda ke dalam daftar, kemudian coba muat halaman Web Anda lagi.

Semoga itu membantu

Salam


-1
2018-01-24 12:28