ASP.Xファイル
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="t1" DataSourceID="SqlDataSource1" AllowSorting="True" Height="115px"
onrowcreated="GridView1_RowCreated" Width="87px">
<Columns>
<asp:BoundField DataField="t1" HeaderText="t1" ReadOnly="True"
SortExpression="t1" />
<asp:BoundField DataField="chStr" HeaderText="chStr" SortExpression="chStr" />
<asp:BoundField DataField="ch" HeaderText="ch" SortExpression="ch" />
<asp:CheckBoxField DataField="chBit" HeaderText="chBit"
SortExpression="chBit" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testdbConnectionString %>"
SelectCommand="SELECT [t1], [chStr], [ch], [chBit] FROM [tbl001]">
</asp:SqlDataSource>
csファイル
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0) {
var cb = (CheckBox)e.Row.Cells[3].Controls[0];
cb.Enabled = true;
}
}
データの内容(chBitはyes/no型)
t1|t2 |t3 |t4 |ch |chStr|chBit
-----------------------------------------------------------------------
2 |適当な文字列を入れてね2|aaa|2013-04-04 17:20:09.460|1 |true |False
3 |適当な文字列を入れてね3|aaa|2013-04-04 17:20:09.460|0 |false|True
4 |適当な文字列を入れてね4|aaa|2013-04-04 17:20:09.460|NULL|true |False
5 |適当な文字列を入れてね5|aaa|2013-04-04 17:20:09.460|NULL|false|True
6 |適当な文字列を入れてね6|aaa|2013-04-04 17:20:09.463|NULL|NULL |NULL
チェックボックスはchBitに結びつけられています
というような、WEBフォームを作ったとき、
チェックボックスを使ってやりたいことが2種類あるのですが、なかなかできずに困っています
1.通常のチェックボックスではなく、イメージにしたい
つまり、オリジナルのイメージで、チェックしていない状態と、チェックした状態を実現したい
ボタンの押されている状態と、押されていない状態のイメージを設定したいのですがどうしたらいいのか?
2.データがNULLの時は表示したくない
chBitにはNULLが設定されることが有り、そのときはカラムを空欄にしたい
3.ヘッダをクリックされたときにソートするが、クリックするたびにデータベースを読んでしまい
チェックボックスを変更した状態がキャンセルされてしまうので、
この項目に関しては、ヘッダクリックのソートはデータベースの再読込ではなく、
すでに読み込んだ状態でソートしたい
ASP.NETが、よくわかってないのでもしかしたら、簡単に実現出来てしまうのかもしれないですが・・よろしくお願いします
チェックボックスではなく、GridView上の他のコントロールで実現出来るのでしたらそちらで教えてください