私の aspx ページではlinkbtTitle
、リピーター コントロール内にLinkbutton があります。
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
<script runat="server">
protected void Buttonlink_Click(object sender, System.EventArgs e)
{
LinkButton linkbtTitle = (LinkButton)sender;
linkbtTitle.ForeColor = System.Drawing.Color.HotPink;//change color when selected
linkbtTitle.Font.Underline = true;
linkbtTitle.Font.Italic = true;
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="linkbtTitle" runat="server" Text='<%#Eval("TITLE")%>' CommandArgument='<%#Eval("ID")%>' OnCommand="linkbtTitle_Click" OnClick="Buttonlink_Click" ></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
クライアントがクリックしOnCommand="linkbtTitle_Click"
たときに添付ファイルを自動ダウンロードし 、選択したリンクボタンの色を変更する方法を使用します。Linkbutton
OnClick="Buttonlink_Click"
このページを作成すると、添付ファイルは自動的にダウンロードされますが、選択したリンク ボタンの色が変わりません。
デバッグを試みます。関数 Buttonlink_Click() は呼び出されません。メッセージが表示されます:Expression Statement is not assignment or call
マウスをステートメントに合わせると:... OnClick="Buttonlink_Click" ...
私linkbtTitle_Click
のコードビハインドを見てください:
public void linkbtTitle_Click(object sender, CommandEventArgs e)
{
//auto download the attachment when selected
int mamd = Convert.ToInt32(e.CommandArgument.ToString());
string sql = "select * from MAU_DON where MA_MAU_DON="+mamd;
DataTable maudon = l.EXECUTEQUERYSQL(sql);
string attachment = dirPath["MAU_DON"].DIRECTORY + @"/" + maudon.Rows[0]["PATH"].ToString();
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + Path.GetFileName(attachment));
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.WriteFile(attachment);
HttpContext.Current.Response.End();
}