Kontrol data mendukung beberapa metode untuk menangani nilai null atau data yang hilang. Misalnya, GridView, FormView, dan DetailsView semuanya mendukung properti KosongDataTeks atau KosongDataTemplate. Jika sumber data tidak mengembalikan baris data, Anda dapat menggunakan properti ini untuk menentukan konten yang ditampilkan oleh kontrol. Kita hanya perlu menyetel salah satu dari KosongDataTeks dan KosongDataTemplate (jika keduanya disetel, KosongDataTemplate akan kelebihan beban). Anda juga dapat menentukan properti ConvertEmptyStringToNull pada bidang terikat (dan jenis bidang turunan), bidang templat, atau objek parameter sumber data untuk menunjukkan bahwa nilai String.Empty dari klien harus dikonversi ke nilai nol sebelum operasi sumber data terkait disebut.
ObjectDataSource juga mendukung properti ConvertNullToDbNull. Ketika metode yang relevan memerlukan penggunaan DbNull untuk mengganti nilai null (kelas TableAdapter dalam kumpulan data Visual Studio memiliki persyaratan ini), kita dapat menyetel properti ini ke true. Anda juga dapat menentukan properti NullDisplayText dari bidang terikat (dan jenis bidang turunan), yang menentukan konten yang akan ditampilkan ketika nilai bidang yang dikembalikan oleh sumber data adalah null. Jika nilai tidak berubah dalam mode edit, nilai tersebut akan dikembalikan ke sumber data backend sebagai nilai null selama operasi pembaruan. Terakhir, Anda juga dapat menentukan atribut DefaultValue dari parameter sumber data. Jika nilai parameter yang diteruskan kosong, atribut ini akan menetapkan nilai default ke parameter tersebut. Properti ini bersifat "rantai-reaktif", misalnya, jika ConvertEmptyStringToNull dan DefaultValue keduanya disetel, nilai String.Empty pertama-tama akan dikonversi ke null, lalu dikonversi ke nilai default.
<Bidang>
<asp:BoundField DataField="Telepon" HeaderText="Telepon" NullDisplayText="tidak terdaftar" SortExpression="Telepon" />
<asp:BoundField DataField="Fax" HeaderText="Fax" NullDisplayText="tidak terdaftar" SortExpression="Fax" />
</Bidang>
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/warning.gif" />Tidak ada catatan untuk ditampilkan
</Templat Data Kosong>
</asp:Tampilan Detail>
<Parameter Pembaruan>
<asp:Parameter Name="ContactTitle" Type="String" DefaultValue="Pemilik" ConvertEmptyStringToNull="true" />
<asp:Parameter Name="Wilayah" Type="String" ConvertEmptyStringToNull="true" />
<asp:Nama Parameter="Telepon" Type="String" ConvertEmptyStringToNull="true" />
<asp:Parameter Name="Fax" Type="String" ConvertEmptyStringToNull="true" />
<asp:Nama Parameter="ID Pelanggan" Tipe="String" />
</UpdateParameters>
…
Anda dapat menggunakan properti ini untuk menangani nilai null guna menerapkan filter daftar drop-down yang awalnya menampilkan semua nilai dari sumber data hingga nilai dalam filter dipilih. Kami menerapkannya seperti ini: pertama tambahkan item data dengan nilai string kosong ke daftar drop-down, dan atur properti ConvertEmptyStringToNull dari ControlParameter (parameter kontrol) yang terkait dengan daftar drop-down di sumber data.
Kemudian di SelectCommand sumber data, Anda dapat mengembalikan semua nilai (tanpa filter) dengan mendeteksi nilai null. Contoh berikut mendemonstrasikan teknik ini menggunakan perintah SQL sederhana, namun Anda juga dapat melakukan pemeriksaan null dalam implementasi prosedur tersimpan. Harap perhatikan penggunaan properti AppendDataBoundItems dari daftar drop-down, yang memungkinkan nilai dari sumber data daftar drop-down ditambahkan ke item data "SEMUA" (item ini ditambahkan secara statis oleh kami). Pada saat yang sama, kita harus mencatat bahwa secara default, jika salah satu nilai parameter relevan yang diteruskan ke SelectCommand kosong, SqlDataSource tidak akan melakukan operasi Select. Untuk memaksa operasi Select dijalankan ketika nilai null diteruskan, Anda dapat mengatur properti CancelSelectOnNullParameter ke false.
<asp:ListItem Value="">SEMUA</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:Pubs %>" ID="SqlDataSource2" runat="server" SelectCommand="SELECT DISTINCT [negara bagian] FROM [penulis]">
</asp:SqlDataSource>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:Pubs %>" ID="SqlDataSource1" runat="server" SelectCommand="SELECT au_id, au_lname, au_fname, menyatakan DARI penulis WHERE state = IsNull( @negara bagian, negara bagian)" CancelSelectOnNullParameter="False">
<PilihParameter>
<asp:ControlParameter ControlID="DropDownList1" Name="state" PropertyName="SelectedValue" Type="String" />
</PilihParameter>
</asp:SqlDataSource>