ダウンロード時に二回目以降のクリックイベントが動作しない場合の回避方法

念のためメモ。以下のURLを参考にして実装すると回避できます。
After file added to response, post back stops working in WebPart


1.以下のコードをPageクラスに追加(拡張メソッドでもよし)

protected void AlterFormSubmitEvent()
{
    StringBuilder script = new StringBuilder();
    script.AppndLine("var exportRequested = false;");
    script.AppndLine("var beforeFormSubmitFunction = theForm.onsubmit;");
    script.AppndLine("theForm.onsubmit = function(){");
    script.AppndLine("var returnVal = beforeFormSubmitFunction();");
    script.AppndLine("if(exportRequested && returnVal){_spFormOnSubmitCalled=false; exportRequested=false;}");
    script.AppndLine("return returnVal;");
    script.AppndLine("};");
    script.AppndLine(this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alterFormSubmitEvent", script.ToString(), true));
}

2.ダウンロードするボタンのOnClientClickで「exportRequested=true;」を設定


これで二回目とか関係なく正常にクリックイベントが動作します。
これはSharepointはもともと二重送信防止の制御が入っているのが原因と思われます。
リクエスト時にフラグを立てるのでダウンロードなどリクエストをフラッシュしてしまうと
フラグが立てぱなしになってしまうからではないかと推測しています。

Database Editionのスキーマ比較が起動しない問題

Database Editionがうまく起動しない事象が発生した。理由はフリーのフォントを使用していたため。
個人的にMS ゴシックが嫌いなんで、基本的にフリーのフォントを使っているんですよねぇ。
Consolasだと日本語が等幅フォントじゃないのでxmlコメントで扱いにくい。
さらにSharepointの開発だとVirtual Serverを使用するのでClearTypeフォントが使えない。
なのでフリーよろしくでやっていのが原因。MS ゴシックに戻したら無事に使用できた。

謹賀新年

気がついたら2009年になってしまいました。ダラダラとテレビを見て年を越したわけだけど、今年はダラダラとせず気を引き締めていきたいところ。だからといって、このブログが活発になるかといわれると微妙ですなぁ。

去年を振り返ると上半期は仕事に忙殺されていた感じだったなぁと思う。でも、前職最後のプロジェクトにしては色んな面で気づきを得たプロジェクトだった思う。

下半期になると転職して色んな面で自分が忘れていたことに気づかされた感じ。初心を忘れちゃいかんね。あとは京都で旧友にも会えたし、他にも旅行とかライブとかそれなりに満喫できた年だったなぁって思う。

今年も自分になりにマイペースで満喫できたらって思います。

SPGridViewのバインド時にグループ表示を展開しない方法

SPGridViewでAllowGroupingを有効にするとグループ化してくれるが、デフォルトだと全展開されて表示される。
全展開しないプロパティを探したけど、どこにもなかったのでClientScript使って以下のようにすると全展開されません。

<script type="text/javascript">
var rows = document.getElementsByTagName('tr');
var numRows = rows.length;
for (var i = 0; i < numRows; ++i) 
{
    if (rows[i].getAttribute("isexp") != null && rows[i].getAttribute("isexp").toLowerCase() == "true")
    {
          if(rows[i].firstChild.firstChild != null && rows[i].firstChild.firstChild.tagName.toLowerCase() == "a")
          {    
              if (rows[i].firstChild.firstChild.title.toLowerCase() == "展開/折りたたむ")
                  {
                    rows[i].firstChild.firstChild.fireEvent("onclick");
            }
          }
    }

}
</script>

元ネタ:Robin's Sharepoint Blog: SPGridview and collapsed grouping by default!

SharePoint Guidance - November 2008

今ちょうどMOSSをあれこれやっているのでこれはありがたい。
家にはMOSSの開発環境はないので会社で試してみよう!!


SharePoint Guidance | Microsoft Docs
http://www.microsoft.com/downloads/details.aspx?FamilyId=C3722DBA-6EE7-4E0E-82B5-FDAF3C5EC927&displaylang=en

2008年度ドラフト会議

今年のドラフトは田沢以外あまり目立った選手がいない感じらしいのでスカウトの力量が問われるところ。
各球団、そこそこ期待通りの選手が獲れたみたいだけど、阪神のみ運に見放された感じですね。


日本球団の指名拒否をした選手が数年間プレーできない制裁を適用するために、田沢は誰も指名しなかったみたいだね。
まぁメジャーじゃ通用しなかったから日本球界でっていうのはねぇ。
田沢もこの制裁を吹っ飛ばすような活躍をしてほしいもんだ。


それから、やっと高・大の統一ドラフトに戻って裏金の温床である逆指名制度もなくなり、早く完全ウェーバー制が待たれるところ。
もう巨人だけではやっていけない状況の球団運営だけど、メジャーに負けないぐらい良い環境にして欲しいもんだ。
某新聞社の老人に惑わされることなく球界再編を継続的にしていかないとねぇ。
だから、WBCは非常に重要で前回大会のような盛り上がりを期待したい。


http://sportsnavi.yahoo.co.jp/baseball/npb/draft/08season/live/draft1.html

チーム開発環境を無理なく導入するには?

anduさんが@ITにTFSの導入についての記事を掲載されています。
チーム開発環境を無理なく導入するには?(1/4) - @IT


前職までTFSを利用した環境下でのプロジェクトの経験が残念ながらありません。
コスト面の問題でTFSは見送りになってしまうんですよねぇ。
と思いがちになるんですが、このコスト面に対しての効果(費用対効果)を解説しています。
オープンソースプロダクトはもう嫌だ!!TFSでやらしてくれと思った方は参考になるのでは!?


TFSが導入できない場合でTFSのような環境をどう自前で用意するかというと↓のような感じになります。

ソース管理:Subversion
CIサーバ:CruiseControl.NET + MSBuild(Or NAnt)
タスク・バグ管理:Trac(Or SharpForge)

確かにオープンソースプロダクトで賄えなくはないが、さらに上記以外でもクライアントツールが必要になってくる。
これらの使い方を覚えるのに英語のドキュメントを読まないといけないし、各プロダクトの本質も理解しないといけない。
さらにプロジェクトの開発者向けにガイドラインの作成もしないといけない。
おまけにオープンソースプロダクトの欠点はいつ開発がストップするかわからないということ。


こういうのを考えるとTFSにしよってならないかな。。。