ASP.NETプロジェクト申告システム-4.20~4.27まとめ
19275 ワード
4.20
GridViewのRowDataBoundイベントでデータ列かどうかを判断する文はif(e.Row.RowType==DataControlRowType.DataRow)//データ列を判断する文は他に書いてもダメです.
動的バインドGridViewのHyperLinkのNavigateUrl:
4.22
VSの下で正規表現で検索と置換すると便利です.
vsにはwdsのような正規表現はないので、できるだけ他の方法で表すようにします.例えば、dは[0-9]と書きます.vsのスペースは直接1つのスペースでいいので、sでは表しません.[,],<,>,{,},(,)など、これらは特殊な意味を持つ文字であり、これらの文字自体に一致するには、前にエスケープ文字を付ける必要があります.例えば、[一致[.MSDNにはvsレプリケーション置換の特殊な記号を含む完全な情報があります.
検索内容:Label{.*}Label{Proj[^Y].*}Label置換:TextBox1 TextBox2 TextBox2 TextBox
asp
検索内容:{ProjBegin}{[0-9]+}{".*"}置換:123 onchange="changeProjYear(2)"
置換:
JAvascriptのsubstring(int a,int b)は、a番目の文字からb番目の文字(b番目の文字を含まない)までをとるサブ列であり、2番目のパラメータはオプションであり、このパラメータなしで末尾を表す.C#のSubstring(int a,int b)は、a番目の文字から始まり、長さb番目の文字をとるサブストリングであり、同様に2番目のパラメータはオプションであり、このパラメータは末尾まで表示されない.
Label(spanに変換)を変更するには、クライアントにvalue属性のコントロールがない場合はdocumentを使用します.getElementById('<%=ControlID.ClientID%>').innerText='value'innerHtmlはinnerTextの代わりに使用できます.buttonはクライアントにvalue属性があり、直接この属性を使用し、innerTextやinnerHtmlを使用しないでください.そうしないと、エラーや修正が成功しません.
GridViewのHyperLink(またはHyperLinkField、実際にはHyperLinkに変換)は、バックグラウンドでコンテンツを取得し、GridViewUsrManagementを使用することはできません.Rows[i].Cells[1].Textでは、HyperLink=(HyperLink)GridViewUsrManagementを使用します.Rows[i].Cells[1].Controls[0]; ...=link.Text;
4.23
サーバコントロール、visibleがfalseに設定された後、ブラウザ側には表示されません.コントロールを非表示にしたい場合は、サーバ側で変更せずにクライアントonloadでコントロールを取得し、styleを設定します.display="none";あるいは、フロントで、そのtdにstyle=「display:none」と書きます.
4.24
C#でTableの行を動的に追加するには:
javascriptでfile uploadでクライアントファイルのパスを取得するとfakepathの問題が発生します.すなわち、本来c:/usr/mashu/a.docにはc:/fakepath/a.docが表示されます(IE 9ではそうです).これは、jsがローカルファイルシステム構造を取得できないように、クライアントブラウザのセキュリティを考慮したものです.また、FileUploadはサーバ側でもクライアントのファイルの完全urlを取得することができず、FileUpload 1.FileNameではファイル名のみが使用できます.ファイルパスではありません.jsを解決してファイルパスを取得する方法は、IEの設定を変更することです:インターネットオプション--セキュリティ--カスタムレベル--ファイルをサーバーにアップロードするときにローカルディレクトリパスを含む.--ポイントで有効にします.
JAvascriptでbuttonが表示され、非表示になります.非表示:button 1.style.display="none"表示:button 1.style.display="block"
クライアントでファイルのサイズを計算するには、fso=new ActiveXObject(「Scripting.FileSystemObject」)が必要です.これはieがactivexのセキュリティオプションをオンにする必要がありますが、オンにするとie 9は下に安全ではないことを示し、win 7の下の旗も安全ではないことを示すので、クライアントjsでファイルのサイズを計算することを放棄します.
4.25
LinkButtonをクライアントでリンクとして機能させるには、【新規メッセージなし】
jsはページコントロールの遍歴を行う:
onchangeイベントをサポートするHTMLタグ:,
GridViewのRowDataBoundイベントでデータ列かどうかを判断する文はif(e.Row.RowType==DataControlRowType.DataRow)//データ列を判断する文は他に書いてもダメです.
動的バインドGridViewのHyperLinkのNavigateUrl:
//
<asp:HyperLinkField DataTextField="ProjName" HeaderText=" " NavigateUrl="a.aspx">
<HeaderStyle Width="20%" />
<ItemStyle Width="20%" CssClass="content" />
</asp:HyperLinkField>
//
protected void GridViewProjView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)//
{
HyperLink link = (HyperLink)e.Row.Cells[2].Controls[0];
if (e.Row.Cells[7].Text == " ")
{
link.NavigateUrl = "ProjInfo.aspx?projid=" + e.Row.Cells[1].Text;
}
else
{
link.NavigateUrl = "ProjInfo2.aspx?projid=" + e.Row.Cells[1].Text;
}
e.Row.Cells[3].ToolTip = e.Row.Cells[3].Text;
e.Row.Cells[4].ToolTip = e.Row.Cells[4].Text;
e.Row.Cells[5].ToolTip = e.Row.Cells[5].Text;
e.Row.Cells[7].ToolTip = e.Row.Cells[7].Text;
}
}
4.22
VSの下で正規表現で検索と置換すると便利です.
vsにはwdsのような正規表現はないので、できるだけ他の方法で表すようにします.例えば、dは[0-9]と書きます.vsのスペースは直接1つのスペースでいいので、sでは表しません.[,],<,>,{,},(,)など、これらは特殊な意味を持つ文字であり、これらの文字自体に一致するには、前にエスケープ文字を付ける必要があります.例えば、[一致[.MSDNにはvsレプリケーション置換の特殊な記号を含む完全な情報があります.
検索内容:Label{.*}Label{Proj[^Y].*}Label置換:TextBox1 TextBox2 TextBox2 TextBox
検索内容:{ProjBegin}{[0-9]+}{".*"}置換:123 onchange="changeProjYear(2)"
JAvascriptのsubstring(int a,int b)は、a番目の文字からb番目の文字(b番目の文字を含まない)までをとるサブ列であり、2番目のパラメータはオプションであり、このパラメータなしで末尾を表す.C#のSubstring(int a,int b)は、a番目の文字から始まり、長さb番目の文字をとるサブストリングであり、同様に2番目のパラメータはオプションであり、このパラメータは末尾まで表示されない.
Label(spanに変換)を変更するには、クライアントにvalue属性のコントロールがない場合はdocumentを使用します.getElementById('<%=ControlID.ClientID%>').innerText='value'innerHtmlはinnerTextの代わりに使用できます.buttonはクライアントにvalue属性があり、直接この属性を使用し、innerTextやinnerHtmlを使用しないでください.そうしないと、エラーや修正が成功しません.
GridViewのHyperLink(またはHyperLinkField、実際にはHyperLinkに変換)は、バックグラウンドでコンテンツを取得し、GridViewUsrManagementを使用することはできません.Rows[i].Cells[1].Textでは、HyperLink=(HyperLink)GridViewUsrManagementを使用します.Rows[i].Cells[1].Controls[0]; ...=link.Text;
4.23
サーバコントロール、visibleがfalseに設定された後、ブラウザ側には表示されません.コントロールを非表示にしたい場合は、サーバ側で変更せずにクライアントonloadでコントロールを取得し、styleを設定します.display="none";あるいは、フロントで、そのtdにstyle=「display:none」と書きます.
4.24
C#でTableの行を動的に追加するには:
//
using System.Web.UI.HtmlControls;
private void CreateTableRow(News news,int range)
{
for (int i = 1; i <= range; i++)
{
HtmlTableCell cell1 = new HtmlTableCell();
cell1.InnerHtml = i.ToString();//
cell1.Style.Add("text-align", "center");
HtmlTableCell cell2 = new HtmlTableCell();
cell2.InnerHtml = GetAttach(news, i);//
cell2.Style.Add("text-align", "center");
HtmlTableCell cell3 = new HtmlTableCell();
Button buttondel = new Button();
buttondel.ID = "ButtonDel" + i.ToString();
buttondel.Text = " ";
if (news.NewsEditor != Convert.ToInt32(Session["UsrID"]))// disable, pageload
{
buttondel.Enabled = false;
}
buttondel.OnClientClick = "return confirm(' ?');";
cell3.Controls.Add(buttondel);//
buttondel.Click += new EventHandler(ButtonDel_Click);
cell3.Style.Add("text-align", "center");
HtmlTableRow row = new HtmlTableRow();
row.Cells.Add(cell1);
row.Cells.Add(cell2);
row.Cells.Add(cell3);
//FileTable table id, table runat='server' ,
FileTable.Rows.Insert(i, row);
}
}
//
private string GetAttach(News news,int n)
{
string part="";
switch (n)
{
case 1: part = news.NewsAttach1; break;
case 2: part = news.NewsAttach2; break;
case 3: part = news.NewsAttach3; break;
case 4: part = news.NewsAttach4; break;
case 5: part = news.NewsAttach5; break;
case 6: part = news.NewsAttach6; break;
case 7: part = news.NewsAttach7; break;
case 8: part = news.NewsAttach8; break;
case 9: part = news.NewsAttach9; break;
case 10: part = news.NewsAttach10; break;
case 11: part = news.NewsAttach11; break;
case 12: part = news.NewsAttach12; break;
case 13: part = news.NewsAttach13; break;
case 14: part = news.NewsAttach14; break;
case 15: part = news.NewsAttach15; break;
default: break;
}
return part;
}
//
protected void ButtonDel_Click(object sender, EventArgs e)
{
...
}
javascriptでfile uploadでクライアントファイルのパスを取得するとfakepathの問題が発生します.すなわち、本来c:/usr/mashu/a.docにはc:/fakepath/a.docが表示されます(IE 9ではそうです).これは、jsがローカルファイルシステム構造を取得できないように、クライアントブラウザのセキュリティを考慮したものです.また、FileUploadはサーバ側でもクライアントのファイルの完全urlを取得することができず、FileUpload 1.FileNameではファイル名のみが使用できます.ファイルパスではありません.jsを解決してファイルパスを取得する方法は、IEの設定を変更することです:インターネットオプション--セキュリティ--カスタムレベル--ファイルをサーバーにアップロードするときにローカルディレクトリパスを含む.--ポイントで有効にします.
JAvascriptでbuttonが表示され、非表示になります.非表示:button 1.style.display="none"表示:button 1.style.display="block"
クライアントでファイルのサイズを計算するには、fso=new ActiveXObject(「Scripting.FileSystemObject」)が必要です.これはieがactivexのセキュリティオプションをオンにする必要がありますが、オンにするとie 9は下に安全ではないことを示し、win 7の下の旗も安全ではないことを示すので、クライアントjsでファイルのサイズを計算することを放棄します.
4.25
LinkButtonをクライアントでリンクとして機能させるには、
jsはページコントロールの遍歴を行う:
//javascript textbox, 。
var anyInput=document.getElementsByTagName("input");
for(var i=0;i<anyInput.length;i++){
if(anyInput[i].type=="text"){// text checkbox checkbox
...
}
}
// select ( dropdownlist), 。
var anySelect=document.getElementsByTagName("select");
for(var i=0;i<anySelect.length;i++){
...
}
// checkbox , obj this:
var elem = obj.form.elements;
var flg = 0;
for (var i = 0; i < elem.length; i++) {
if (elem[i].type == "checkbox") {
...
}
}
onchangeイベントをサポートするHTMLタグ:,