DataList'in Düzenleme Arabirimini Özelleştirme (VB)

Scott Mitchell tarafından

Örnek uygulamayı indirin veya PDF 'yi indirin

Bu öğreticide, bir, DropDownLists ve CheckBox içeren bir DataList için daha zengin bir düzen arabirimi oluşturacağız.

Giriş

DataList 'teki biçimlendirme ve Web denetimleri, düzenlenebilir arabirimini tanımlar EditItemTemplate. Şimdiye kadar incelediğimiz tüm düzenlenebilir DataList örneklerinde, düzenlenebilir arabirim metin kutusu Web denetimlerinden oluşur. Önceki öğreticide , doğrulama denetimleri ekleyerek düzenleme zamanı kullanıcı deneyimini geliştirdik.

EditItemTemplate, DropDownLists, RadioButtonLists, takvimler gibi metin kutusu dışındaki Web denetimlerini içerecek şekilde daha da genişletilebilir. Metin kutularına olduğu gibi, diğer Web denetimlerini içerecek şekilde, düzen arabirimini özelleştirirken, aşağıdaki adımları uygulayın:

  1. EditItemTemplateWeb denetimini ekleyin.
  2. Uygun özelliğe karşılık gelen veri alanı değerini atamak için DataBinding sözdizimini kullanın.
  3. UpdateCommand olay işleyicisinde, programlı olarak Web denetim değerine erişin ve uygun BLL metoduna geçirin.

Bu öğreticide, bir, DropDownLists ve CheckBox içeren bir DataList için daha zengin bir düzen arabirimi oluşturacağız. Özellikle ürün bilgilerini listeleyen bir DataList oluşturacağız ve ürün adı, sağlayıcı, kategori ve Discontinued durumunun güncelleştirilmesini sağlar (bkz. Şekil 1).

düzen arabirimi bir TextBox, Iki DropDownLists ve bir CheckBox Içerir

Şekil 1: düzen arabirimi bir TextBox, Iki dropdownlists ve bir onay kutusu içerir (tam boyutlu görüntüyü görüntülemek için tıklayın)

1. Adım: ürün bilgilerini görüntüleme

DataList 'ler düzenlenebilir arabirimini oluşturabilmeniz için önce salt okunurdur arabirimini derlemeniz gerekir. CustomizedUI.aspx sayfasını EditDeleteDataList klasöründen açıp tasarımcıdan sayfaya bir DataList ekleyerek ID özelliğini Productsolarak ayarlayarak başlayın. DataList s akıllı etiketinden yeni bir ObjectDataSource oluşturun. Bu yeni ObjectDataSource ProductsDataSource adlandırın ve ProductsBLL Class s GetProducts yönteminden verileri almak üzere yapılandırın. Önceki düzenlenebilir DataList öğreticilerinde olduğu gibi, düzenlenen ürün bilgilerini doğrudan Iş mantığı katmanına giderek güncelleştireceğiz. Buna uygun olarak, GÜNCELLEŞTIRME, ekleme ve SILME sekmelerinden (hiçbiri) açılan listeleri ayarlayın.

GÜNCELLEŞTIRME, ekleme ve SILME sekmeleri aşağı açılan listelerini (hiçbiri) ayarlamak

Şekil 2: GÜNCELLEŞTIRME, ekleme ve silme sekmelerini ayarlama açılan listelerini (yok) ayarlayın (tam boyutlu görüntüyü görüntülemek için tıklayın)

ObjectDataSource yapılandırıldıktan sonra Visual Studio, döndürülen veri alanlarının her biri için adı ve değeri listeleyen DataList için varsayılan bir ItemTemplate oluşturur. ItemTemplate, şablonun ürün adını kategori adı, tedarikçi adı, Fiyat ve Discontinued durumuyla birlikte bir <h4> öğesinde listelediğinden bu şekilde değiştirin. Ayrıca, bir Düzenle düğmesi ekleyin ve CommandName özelliğinin Düzenle olarak ayarlandığından emin olun. ItemTemplate için bildirim temelli biçimlendirme şu şekildedir:

<ItemTemplate>
    <h4>
        <asp:Label ID="ProductNameLabel" runat="server"
            Text='<%# Eval("ProductName") %>' />
    </h4>
    <table border="0">
        <tr>
            <td class="ProductPropertyLabel">Category:</td>
            <td class="ProductPropertyValue">
                <asp:Label ID="CategoryNameLabel" runat="server"
                    Text='<%# Eval("CategoryName") %>' />
            </td>
            <td class="ProductPropertyLabel">Supplier:</td>
            <td class="ProductPropertyValue">
                <asp:Label ID="SupplierNameLabel" runat="server"
                    Text='<%# Eval("SupplierName") %>' />
            </td>
        </tr>
        <tr>
            <td class="ProductPropertyLabel">Discontinued:</td>
            <td class="ProductPropertyValue">
                <asp:Label ID="DiscontinuedLabel" runat="server"
                    Text='<%# Eval("Discontinued") %>' />
            </td>
            <td class="ProductPropertyLabel">Price:</td>
            <td class="ProductPropertyValue">
                <asp:Label ID="UnitPriceLabel" runat="server"
                    Text='<%# Eval("UnitPrice", "{0:C}") %>' />
            </td>
        </tr>
        <tr>
            <td colspan="4">
                <asp:Button runat="Server" ID="EditButton"
                    Text="Edit" CommandName="Edit" />
            </td>
        </tr>
    </table>
    <br />
</ItemTemplate>

Yukarıdaki biçimlendirme ürün bilgilerini, ürün adı için bir <H4> başlığını ve kalan alanlar için dört sütunlu <table> kullanarak düzenler. Styles.csstanımlanmış ProductPropertyLabel ve ProductPropertyValue CSS sınıfları önceki öğreticilerde ele alınmıştır. Şekil 3 ' te bir tarayıcıdan görüntülendiklerinde ilerleme durumu gösterilmektedir.

Ad, tedarikçi, kategori, Discontinued durumu ve her ürünün fiyatı görüntülenir

Şekil 3: ad, tedarikçi, kategori, Discontinued durumu ve her bir ürünün fiyatı görüntülenir (tam boyutlu görüntüyü görüntülemek için tıklayın)

2. Adım: düzen arabirimine Web denetimleri ekleme

Özelleştirilmiş DataList düzenlemesi arabirimini oluşturmanın ilk adımı, gerekli Web denetimlerini EditItemTemplateeklemektir. Özellikle, kategori için bir DropDownList ve bir tedarikçi için bir DropDownList ve Discontinued durumu için bir onay kutusu gerekir. Bu örnekte ürün fiyatı düzenlenebilir olmadığından, etiketi Web denetimi kullanarak görüntülemeye devam edebiliriz.

Düzenleme arabirimini özelleştirmek için, DataList s akıllı etiketinden Şablonları Düzenle bağlantısına tıklayın ve açılan listeden EditItemTemplate seçeneğini belirleyin. EditItemTemplate bir DropDownList ekleyin ve ID Categoriesolarak ayarlayın.

Kategoriler için DropDownList eklemek

Şekil 4: Kategoriler Için bir DropDownList ekleyin (tam boyutlu görüntüyü görüntülemek için tıklayın)

Ardından, DropDownList s akıllı etiketinden veri kaynağı seç seçeneğini belirleyin ve CategoriesDataSourceadlı yeni bir ObjectDataSource oluşturun. Bu ObjectDataSource 'ı CategoriesBLL Class s GetCategories() metodunu kullanacak şekilde yapılandırın (bkz. Şekil 5). Ardından, DropDownList s veri kaynağı Yapılandırma Sihirbazı her bir ListItem s Text ve Value özellikleri için veri alanlarının kullanılmasını ister. DropDownList 'in CategoryName veri alanını göstermesini ve Şekil 6 ' da gösterildiği gibi CategoryID değerini kullanmasını sağlayabilirsiniz.

CategoriesDataSource adlı yeni bir ObjectDataSource oluşturma

Şekil 5: CategoriesDataSource adlı yeni bir ObjectDataSource oluşturun (tam boyutlu görüntüyü görüntülemek için tıklayın)

DropDownList s görüntüleme ve değer alanlarını yapılandırma

Şekil 6: DropDownList s görüntüleme ve değer alanlarını yapılandırma (tam boyutlu görüntüyü görüntülemek için tıklayın)

Tedarikçilere yönelik bir DropDownList oluşturmak için bu adım dizisini tekrarlayın. Bu DropDownList için ID Suppliers olarak ayarlayın ve ObjectDataSource SuppliersDataSourceadlandırın.

İki DropDownLists eklendikten sonra, Discontinued durumu için bir onay kutusu ve ürün adı için bir TextBox ekleyin. CheckBox ve TextBox için ID s öğesini sırasıyla Discontinued ve ProductNameolarak ayarlayın. Kullanıcının ürün adı için bir değer sağladığından emin olmak için bir RequiredFieldValidator ekleyin.

Son olarak, Güncelleştir ve Iptal düğmelerini ekleyin. Bu iki düğme için, CommandName özelliklerinin sırasıyla güncelleştir ve Iptal olarak ayarlandığını unutmayın.

Düzenleme arabirimini istediğiniz gibi düzenleyebilirsiniz. Aşağıdaki bildirim temelli söz dizimi ve ekran görüntüsünde gösterildiği gibi, salt okuma arabiriminden aynı dört sütunlu <table> düzeni kullanmayı kabul ediyorum:

<EditItemTemplate>
    <h4>
        <asp:Label ID="ProductNameLabel" runat="server"
            Text='<%# Eval("ProductName") %>' />
    </h4>
    <table border="0">
        <tr>
            <td class="ProductPropertyLabel">Name:</td>
            <td colspan="3" class="ProductPropertyValue">
                <asp:TextBox runat="server" ID="ProductName" Width="90%" />
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1"
                    ControlToValidate="ProductName"
                    ErrorMessage="You must enter a name for the product."
                    runat="server">*</asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="ProductPropertyLabel">Category:</td>
            <td class="ProductPropertyValue">
                <asp:DropDownList ID="Categories" runat="server"
                    DataSourceID="CategoriesDataSource"
                    DataTextField="CategoryName" DataValueField="CategoryID" />
            </td>
            <td class="ProductPropertyLabel">Supplier:</td>
            <td class="ProductPropertyValue">
                <asp:DropDownList ID="Suppliers"
                    DataSourceID="SuppliersDataSource" DataTextField="CompanyName"
                    DataValueField="SupplierID" runat="server" />
            </td>
        </tr>
        <tr>
            <td class="ProductPropertyLabel">Discontinued:</td>
            <td class="ProductPropertyValue">
                <asp:CheckBox runat="server" id="Discontinued" />
            </td>
            <td class="ProductPropertyLabel">Price:</td>
            <td class="ProductPropertyValue">
                <asp:Label ID="UnitPriceLabel" runat="server"
                    Text='<%# Eval("UnitPrice", "{0:C}") %>' />
            </td>
        </tr>
        <tr>
            <td colspan="4">
                <asp:Button runat="Server" ID="UpdateButton" CommandName="Update"
                    Text="Update" />
                 
                <asp:Button runat="Server" ID="CancelButton" CommandName="Cancel"
                    Text="Cancel" CausesValidation="False" />
            </td>
        </tr>
    </table>
    <br />
    <asp:ObjectDataSource ID="CategoriesDataSource" runat="server"
        OldValuesParameterFormatString="original_{0}" SelectMethod="GetCategories"
        TypeName="CategoriesBLL">
    </asp:ObjectDataSource>
    <asp:ObjectDataSource ID="SuppliersDataSource" runat="server"
        OldValuesParameterFormatString="original_{0}" SelectMethod="GetSuppliers"
        TypeName="SuppliersBLL">
    </asp:ObjectDataSource>
</EditItemTemplate>

düzen arabirimi salt okuma arabirimi gibi düzenlenmiştir

Şekil 7: düzen arabirimi salt okuma arabirimi gibi düzenlenir (tam boyutlu görüntüyü görüntülemek için tıklayın)

3. Adım: EditCommand ve CancelCommand olay Işleyicilerini oluşturma

Şu anda, EditItemTemplate veri bağlama söz dizimi yoktur (UnitPriceLabeldışında ItemTemplate). Veri bağlama söz dizimini bir kez daha ekleyeceğiz, ancak ilk olarak DataList s EditCommand ve CancelCommand olayları için olay işleyicileri oluşturalım. EditCommand olay işleyicisinin sorumluluğunun, düzenleme düğmesine tıklandığı DataList öğesi için düzenleme arabirimini işleymesinin, CancelCommand s işinin DataList 'i düzenleme öncesi durumuna döndürmesidir.

Bu iki olay işleyicisini oluşturun ve aşağıdaki kodu kullanın:

Protected Sub Products_EditCommand(source As Object, e As DataListCommandEventArgs) _
    Handles Products.EditCommand
    ' Set the DataList's EditItemIndex property to the
    ' index of the DataListItem that was clicked
    Products.EditItemIndex = e.Item.ItemIndex
    ' Rebind the data to the DataList
    Products.DataBind()
End Sub
Protected Sub Products_CancelCommand(source As Object, e As DataListCommandEventArgs) _
    Handles Products.CancelCommand
    ' Set the DataList's EditItemIndex property to -1
    Products.EditItemIndex = -1
    ' Rebind the data to the DataList
    Products.DataBind()
End Sub

Bu iki olay işleyicisi yerine, Düzenle düğmesine tıkladığınızda düzenleme arabirimi görüntülenir ve Iptal düğmesine tıklandığında düzenlenen öğe salt okunurdur moduna döndürülür. Şekil 8 ' de Chef Anton s Gumbo Mix için Düzenle düğmesine tıklandıktan sonra DataList görüntülenir. Henüz bir veri bağlama sözdizimini düzen arabirimine eklemediğimiz için ProductName metin kutusu boş, Discontinued onay kutusu işaretlenmemiş ve Categories ve Suppliers DropDownLists tarafından seçilen ilk öğe.

Düzenle düğmesine tıklamak düzenleme arabirimini görüntüler

Şekil 8: Düzenle düğmesine tıkladığınızda düzenleme arabirimi görüntülenir (tam boyutlu görüntüyü görüntülemek için tıklayın)

4. Adım: bağlama sözdizimini, düzen arabirimine ekleme

Düzen arabiriminin geçerli ürün değerlerini görüntülemesi için veri alanı değerlerini uygun Web denetimi değerlerine atamak üzere veri bağlama söz dizimini kullandık. Veri bağlama söz dizimi, Şablonları Düzenle ekranına gidip Web denetimleri akıllı etiketleri ' nden DataBindings bağlantısını Düzenle ' ye tıklayarak tasarımcı aracılığıyla uygulanabilir. Alternatif olarak, veri bağlama söz dizimi doğrudan bildirime dayalı biçimlendirmeye eklenebilir.

ProductName veri alanı değerini ProductName TextBox s Text özelliğine, CategoryID ve SupplierID veri alanı değerlerini Categories ve Suppliers DropDownLists SelectedValue özelliklerine ve Discontinued veri alanı değerini Discontinued onay kutusu s Checked özelliğine atayın. Bu değişiklikleri, tasarımcı aracılığıyla ya da doğrudan bildirime dayalı biçimlendirme aracılığıyla yaptıktan sonra, sayfayı bir tarayıcı aracılığıyla geri ziyaret edin ve Chef Anton s Gumbo Mix için Düzenle düğmesine tıklayın. Şekil 9 ' da gösterildiği gibi, veri bağlama söz dizimi geçerli değerleri TextBox, DropDownLists ve CheckBox içine ekledi.

Düzenle düğmesine tıklamak düzenleme arabirimini görüntüler

Şekil 9: Düzenle düğmesine tıkladığınızda düzenleme arabirimi görüntülenir (tam boyutlu görüntüyü görüntülemek için tıklayın)

5. Adım: Kullanıcı değişikliklerini, UpdateCommand olay Işleyicisine kaydetme

Kullanıcı bir ürünü düzenlediğinde ve Güncelleştir düğmesine tıkladığında, bir geri gönderme gerçekleşir ve DataList UpdateCommand olayı başlatılır. Olay İşleyicide, veritabanındaki ürünü güncelleştirmek için EditItemTemplate ve arabirimdeki Web denetimlerinden değerleri okuduk. Önceki öğreticilerde gördüğünüz gibi, güncelleştirilmiş ürünün ProductID DataKeys koleksiyonu aracılığıyla erişilebilir. Aşağıdaki kodun gösterdiği gibi, Kullanıcı tarafından girilen alanlara FindControl("controlID")kullanılarak Web denetimlerine programlı olarak başvurulduğunda erişilir:

Protected Sub Products_UpdateCommand(source As Object, e As DataListCommandEventArgs) _
    Handles Products.UpdateCommand
    If Not Page.IsValid Then
        Exit Sub
    End If
    ' Read in the ProductID from the DataKeys collection
    Dim productID As Integer = Convert.ToInt32(Products.DataKeys(e.Item.ItemIndex))
    ' Read in the product name and price values
    Dim productName As TextBox = CType(e.Item.FindControl("ProductName"), TextBox)
    Dim categories As DropDownList=CType(e.Item.FindControl("Categories"), DropDownList)
    Dim suppliers As DropDownList = CType(e.Item.FindControl("Suppliers"), DropDownList)
    Dim discontinued As CheckBox = CType(e.Item.FindControl("Discontinued"), CheckBox)
    Dim productNameValue As String = Nothing
    If productName.Text.Trim().Length > 0 Then
        productNameValue = productName.Text.Trim()
    End If
    Dim categoryIDValue As Integer = Convert.ToInt32(categories.SelectedValue)
    Dim supplierIDValue As Integer = Convert.ToInt32(suppliers.SelectedValue)
    Dim discontinuedValue As Boolean = discontinued.Checked
    ' Call the ProductsBLL's UpdateProduct method...
    Dim productsAPI As New ProductsBLL()
    productsAPI.UpdateProduct(productNameValue, categoryIDValue, supplierIDValue, _
        discontinuedValue, productID)
    ' Revert the DataList back to its pre-editing state
    Products.EditItemIndex = -1
    Products.DataBind()
End Sub

Kod, sayfadaki tüm doğrulama denetimlerinin geçerli olduğundan emin olmak için Page.IsValid özelliğine danışarak başlatılır. Page.IsValid True, düzenlenen ürün s ProductID değeri DataKeys koleksiyonundan okunurdur ve EditItemTemplate veri girişi Web denetimlerine programlı olarak başvurulur. Daha sonra, bu Web denetimlerinde bulunan değerler, daha sonra uygun UpdateProduct aşırı yüklemeye geçirilmiş değişkenlere okunurdur. Veriler güncelleştirildikten sonra DataList, önceden düzenlenen durumuna döndürülür.

Note

Kodu ve bu örneği odaklanmış tutmak için, BLL ve dal düzeyi özel durum öğreticisinde eklenen özel durum işleme mantığını atlıyorum. Alıştırma olarak, bu Öğreticiyi tamamladıktan sonra bu işlevselliği ekleyin.

6. Adım: NULL CategoryID ve SupplierID değerlerini Işleme

Northwind veritabanı, Products tablo s CategoryID ve SupplierID sütunları için NULL değerleri sağlar. Ancak, düzen arabirimimiz Şu anda NULL değerleri barındıramamaktadır. CategoryID veya SupplierID sütunları için NULL değerine sahip bir ürünü düzenlemeye başladığımızda, şuna benzer bir hata iletisi içeren bir ArgumentOutOfRangeException alacaksınız: ' Categories ' öğe listesinde bulunmadığından, geçersiz bir SelectedValue içeriyor. Ayrıca, şu anda bir ürün kategorisi veya tedarikçi değeriniNULL olmayan bir değerden NULL bir değere değiştirme yolu yoktur.

Kategori ve tedarikçi DropDownLists için NULL değerlerini desteklemek üzere, ek bir ListItemeklememiz gerekiyor. Bu ListItemiçin Text değer olarak (hiçbiri) kullanmayı seçtim, ancak d isterseniz bunu başka bir şekilde (boş bir dize gibi) değiştirebilirsiniz. Son olarak, DropDownLists AppendDataBoundItems Trueolarak ayarlamayı unutmayın. Bunu unutursanız, DropDownList 'e Bağlan Kategoriler ve tedarikçiler statik olarak eklenen ListItemüzerine yazar.

Bu değişiklikleri yaptıktan sonra, DataList s EditItemTemplate ' deki DropDownLists işaretlemesi aşağıdakine benzer görünmelidir:

<asp:DropDownList ID="Categories" DataSourceID="CategoriesDataSource"
    DataTextField="CategoryName" DataValueField="CategoryID"  runat="server"
    SelectedValue='<%# Eval("CategoryID") %>' AppendDataBoundItems="True">
    <asp:ListItem Value=" Selected="True">(None)</asp:ListItem>
</asp:DropDownList>
...
<asp:DropDownList ID="Suppliers" DataSourceID="SuppliersDataSource"
    DataTextField="CompanyName" DataValueField="SupplierID" runat="server"
    SelectedValue='<%# Eval("SupplierID") %>' AppendDataBoundItems="True">
    <asp:ListItem Value=" Selected="True">(None)</asp:ListItem>
</asp:DropDownList>

Note

Statik ListItem s, tasarımcı aracılığıyla veya doğrudan bildirime dayalı sözdizimi aracılığıyla bir DropDownList 'e eklenebilir. Bir veritabanı NULL değerini temsil etmek için bir DropDownList öğesi eklenirken, bildirime dayalı söz dizimi aracılığıyla ListItem eklediğinizden emin olun. Tasarımcıda ListItem koleksiyonu düzenleyicisini kullanıyorsanız, oluşturulan bildirime dayalı sözdizimi, boş bir dize atandığında Value ayarını tamamen atlar, şöyle bildirime dayalı biçimlendirme oluşturulur: <asp:ListItem>(None)</asp:ListItem>. Bu durum zararsız görünebilir, ancak eksik Value DropDownList 'in yerinde Text özellik değerini kullanmasına neden olur. Yani, bu NULL ListItem seçilirse, (Bu öğreticideCategoryID veya SupplierID, bu öğreticide) değerin (yok), bir özel durumla sonuçlanabileceği anlamına gelir. Value=""açıkça ayarlayarak, NULL ListItem seçildiğinde ürün verileri alanına bir NULL değeri atanır.

Bir tarayıcıdan ilerleme durumunu görüntülemek için bir dakikanızı ayırın. Bir ürünü düzenlediğinizde, Categories ve Suppliers DropDownLists öğesinin her ikisinin de DropDownList başlangıcında bir (None) seçeneği olduğunu unutmayın.

Kategoriler ve satıcılar DropDownLists , (None) seçeneği içerir

Şekil 10: Categories ve Suppliers Dropdownlists (yok) seçeneği içerir (tam boyutlu görüntüyü görüntülemek için tıklayın)

(None) seçeneğini bir veritabanı NULL değeri olarak kaydetmek için UpdateCommand olay işleyicisine dönmemiz gerekiyor. categoryIDValue ve supplierIDValue değişkenlerini null değer atanabilir tamsayılar olacak şekilde değiştirin ve yalnızca DropDownList s SelectedValue boş bir dize değilse Nothing dışında bir değer atayın:

Dim categoryIDValue As Nullable(Of Integer) = Nothing
If Not String.IsNullOrEmpty(categories.SelectedValue) Then
    categoryIDValue = Convert.ToInt32(categories.SelectedValue)
End If
Dim supplierIDValue As Nullable(Of Integer) = Nothing
If Not String.IsNullOrEmpty(suppliers.SelectedValue) Then
    supplierIDValue = Convert.ToInt32(suppliers.SelectedValue)
End If

Bu değişiklik ile, Kullanıcı bir NULL veritabanı değerine karşılık gelen açılan listelerden birinden (hiçbiri) seçeneğini belirlediyseniz, Nothing değeri UpdateProduct BLL yöntemine geçirilir.

Özet

Bu öğreticide, üç farklı giriş Web denetimi içeren bir metin kutusu, iki DropDownLists ve onay kutusu içeren daha karmaşık bir DataList Editing arabirimi oluşturmayı, doğrulama denetimleriyle birlikte gördük. Yapılandırma arabirimini oluştururken, adımlar, kullanılan Web denetimlerinden bağımsız olarak aynıdır: bir Web denetimlerini DataList s 'e ekleyerek başlayın EditItemTemplate; uygun Web denetimi özellikleriyle ilgili veri alanı değerlerini atamak için DataBinding sözdizimini kullanın; UpdateCommand olay işleyicisinde, Web denetimlerine ve uygun özelliklerine programlı bir şekilde erişin ve değerlerini BLL 'e geçirerek bu özelliklere sahiptir.

Bir düzen arabirimi oluştururken, ister yalnızca metin kutuları, ister farklı Web denetimleri koleksiyonu olsun, veritabanı NULL değerlerini doğru şekilde işlediğinizden emin olun. NULL s için hesaplama yaparken, yalnızca bir düzen arabiriminde var olan bir NULL değerini doğru görüntülemediğinizi ve ayrıca bir değeri NULLolarak işaretlemek için bir yol sunuyoruz. Veritecleriyle ilgili olan DropDownLists için genellikle, Value özelliği açıkça boş bir dizeye (Value="") ayarlanmış statik bir ListItem ekleme ve UpdateCommand olay işleyicisine NULL``ListItem seçili olup olmadığını belirleme için bir kod ekleme anlamına gelir.

Programlamanın kutlu olsun!

Yazar hakkında

4GuysFromRolla.com 'in, Scott Mitchell, yedi ASP/ASP. net books ve 'in yazarı, 1998 sürümünden bu yana Microsoft Web teknolojileriyle çalışmaktadır. Scott bağımsız danışman, Trainer ve yazıcı olarak çalışıyor. En son kitabı, 24 saat içinde ASP.NET 2,0 kendi kendinize eğitimister. mitchell@4GuysFromRolla.comadresinden erişilebilir . ya da blog aracılığıyla http://ScottOnWriting.NETbulabilirsiniz.

Özel olarak teşekkürler

Bu öğretici serisi birçok yararlı gözden geçirenler tarafından incelendi. Bu öğreticide lider gözden geçirenler dennıs Patterson, David suru ve Randy SCHMIDT olarak değiştirildi. Yaklaşan MSDN makalelerimi gözden geçiriyor musunuz? Öyleyse, benimitchell@4GuysFromRolla.combir satır bırakın .