2013年4月29日月曜日

Blogger でツリーウィジット表示

WordPress にはツリー表示用に WP-dtree というウィジットがありますが、Blogger には同様の機能が無いようです。でも HTML/JavaScript ウィジットに自作することができます!以下記事を参考に複数階層を持つツリーウィジットを作ってみました。
↓こんな感じです。





参考

Create a Simple "Tree Menu" in Blogger
http://www.mybloggertricks.com/2011/09/create-simple-menu-in-blogger.html

2013年4月28日日曜日

Blogger すべてのポストを取得

Blogger のすべてのポストを取得してみました。メモしておきます。

<div id="all_post_root">Loading ...</div>
<script type="text/javascript">
 
var displayFeed = function(response) {
 
  var entries = response.feed.entry;
 
  var listUl = document.createElement("ul");
  for (var i in entries) {
     var elt = entries[i].link[4];
 
     var a = document.createElement("a");
     a.href = elt.href;
     a.appendChild(document.createTextNode(elt.title));
 
     var li = document.createElement("li");
     li.appendChild(a);
 
     listUl.appendChild(li);
  }
 
  var allPostRoot = document.getElementById('all_post_root');
  allPostRoot.innerHTML = "";
  allPostRoot.appendChild(listUl);
};
</script>
 
<script src="/feeds/posts/default?alt=json&max-results=999&callback=displayFeed">
</script>


参考
http://stackoverflow.com/questions/2569305/how-to-list-the-post-titles-of-all-the-post-from-my-blogspot-blog

http://www.blogdoctor.me/2008/05/list-all-posts-in-alphabetical-order-in.html

2013年4月24日水曜日

ASP.NET - JavaScript からポストバック

JavaScript でポストバックを行う方法として ScriptManager の __doPostBack メソッドがあります。

簡単な実装例:
<head runat="server">
    <script type="text/javascript">
        function buttonClick() {
            var value = "test";
            __doPostBack("buttonClick", value);
        }
    </script>
</head>

<div>
    <asp:scriptmanager id="ScriptManager1" runat="server"></asp:scriptmanager>
    <input onclick="buttonClick()" type="button" value="click" />
</div>


__doPostBack メソッドで渡されたパラメータを取得します。Params コレクションからインデクサ指定で要素を取り出すか、Params.Get メソッドを利用します。

protected void Page_Load(object sender, EventArgs e)
{
    Debug.WriteLine(Request.Params.Get("__EVENTARGUMENT")); //test
    Debug.WriteLine(Request.Params["__EVENTARGUMENT"]);     //test
    Debug.WriteLine(Request.Params.Get("__EVENTTARGET"));   //buttonClick
    Debug.WriteLine(Request.Params["__EVENTTARGET"]);       //buttonClick
}

Understanding the JavaScript __doPostBack Function
http://aspalliance.com/articleViewer.aspx?aId=895&pId=-1

2013年4月23日火曜日

FindControl によるコントロール取得

Login コントロールのような複数のユーザーコントロールを内包するコントロールや、テンプレート(ContentTemplate)内に配置されているコントロールは ID 指定で直接参照できないことがあります。このような場合、FindControl() メソッドを利用することでテンプレート内のコントロールを参照することができるようになります。

Login コントロールを使った例:

<%--Login コントロール--%>


// コントロール取得
protected void Button1_Click(object sender, EventArgs e)
{
    this.Login1.TemplateControl.ToString();
    TextBox userName = this.Login1.FindControl("UserName") as TextBox;
    TextBox password = this.Login1.FindControl("Password") as TextBox;
 
    Debug.WriteLine(userName.Text); // ユーザーID
    Debug.WriteLine(password.Text); // パスワード
}

Control.FindControl メソッド (String)
http://msdn.microsoft.com/ja-jp/library/vstudio/486wc64h%28v=vs.100%29.aspx

2013年4月22日月曜日

GridView 列にアクセス

GridView では、AutoGenerateColumns プロパティを True にして列の自動生成をしていると、コードビハインドで GridView の列にアクセスすることができません。AutoGenerateColumns プロパティを False にして、明示的に列を定義することで列にアクセスすることができます。

<%--列を定義する--%>

    
        
        
        
    

<%--これでは列にアクセスできない--%>
<%--
--%>

2013年4月21日日曜日

スクリプトで生成されるイメージのアラインメントを指定

スクリプトで生成されるイメージを右寄せする必要があったので調べたところ、div で囲んで、div に align を設定したらOKでした。

<div align="center">
    <script src="XXXXX.js" type="text/javascript"></script>
</div>

ASP.NET MVC 変数を使う

public class HomeController : Controller
{
    public ActionResult Index()
    {
        // コントローラー側での変数初期化
        ViewBag.Message = "メッセージ";
 
        return View();
    }
}

@*変数の初期化*@
@{
    ViewBag.Title = "テストページ";
    var number = 123;
    var razorVar = "Razor で変数";
}
 
@*変数の参照*@
@ViewBag.Message

@ViewBag.Title

@number

@razorVar

2013年4月19日金曜日

WordPress のヘッダーイメージを非表示

WordPress のヘッダーイメージは header.php の 91 行目あたりにある以下のアンカータグで表示されます。ここを削除する、もしくはコメントアウトするとヘッダーイメージが消えます。


2013年4月18日木曜日

Visual Studio コード整形

Visual Studio でコードを整形する機能です。

HTML や CS コードなどを実装をしているうちにインデントが崩れたり改行が多くなったりしてしまいます。そんな時は Visual Studio のフォーマット機能を!
整形したいコードを選択して、「選択範囲のフォーマット」を実行します。





すると、こんな感じでコードを整形できます。