YaneuraoGameSDK.NET
あのYaneuraoSDKがC#2.0(.NET)に対応して公開されました。まだ暫定版のようですが、興味があるのでソースを見てみよ。興味のある方は是非。
[.NET][Yanesdk] C#2.0時代のゲームプログラミング(1)
epoc算出
先日、d:id:shoさんに教えていただいたepocをC#で算出する方法を備忘録に追加。
[csharp]
double epoc = (DateTime.Now - new DateTime(1970,1,1,9,0,0)).TotalSeconds;
[/csharp]
理屈では合っているはず。
System.Threading.ThreadAbortException
ページをリダイレクトさせたタイミングで、System.Threading.ThreadAbortExceptionがスローされました。Javaでもよくやらかした臭いのある例外です。まぁ大方の予想通り、スレッド処理中に別ページへリダイレクトして、処理中スレッドを終了させようとしたから例外がでちゃってたわけです。
調べるのに少し時間がかかったわりには、対処法は意外と簡単でした。
Response.Redirect("Xxx.aspx");
とあるところを
Response.Redirect("../Error.aspx", false);
とするだけ。
第2引数のbool型変数は、現在のページの実行を終了するかしないかを指定します。
DataGridでのHTMLエスケープ
DataGridにたいしてデータソースをBindした場合、データソース内にHTMLエスケープ対象文字が含まれる場合があります。それらを手動でエスケープしてあげる必要があるようです。(もしかしたらもっといい方法があるかもしれませんが)((もっといい方法があったら教えてください))
今回私が対処した方法を、覚え書として書いておきます。この方法は、DataGridのItemDataBoundイベントを利用して行います。
下に示すサンプルでは、ItemタイプとAlternatingItemタイプレコードに対してのみHTMLエスケープを実施するようになっています。よって、ヘッダー、フッターはHTMLエスケープされません。
[csharp]
private void PersonalDataGrid_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//項目値のHTMLエンコード
if (e.Item.ItemType == ListItemType.Item
|| e.Item.ItemType == ListItemType.AlternatingItem)
{
IEnumerator cellEnum = e.Item.Cells.GetEnumerator();
while (cellEnum.MoveNext())
{
TableCell cell = (TableCell)cellEnum.Current;
string text = cell.Text;
text = HttpUtility.HtmlEncode(text);
cell.Text = text;
}
}
}
[/csharp]
