ASP.NET(C#、Webフォーム)について質問です。
現在テーブルを作成してデータはXMLから読み込んでおります。
その際に各セルに文字数制限をかけたいのですが(文字数が超えていた場合それ以降の文字を表示しないなど)、asp側でMaxLengthなど効果がなく
どのようにすればいいのか困っております。
以下要点のソースコードになります。
ASP側
HTML
1<asp:Table ID="Tbl_memberlist" runat="server" style="border-collapse:collapse;table-layout:fixed;"> 2 <asp:TableHeaderRow style=" background-color:chartreuse;"> 3 <asp:TableHeaderCell ID="Header_No" Text="No" Width="80"runat="server" style="border: 1px solid;"></asp:TableHeaderCell> 4 <asp:TableHeaderCell ID="Header_Name" Text="Name" Width="150"runat="server" style="border: 1px solid"></asp:TableHeaderCell> 5 <asp:TableHeaderCell ID="Header_Add" Text="Address" Width="150"runat="server" style="border: 1px solid"></asp:TableHeaderCell> 6 <asp:TableHeaderCell ID="Header_Skill" Text="Skill" Width="150"runat="server" style="border: 1px solid"></asp:TableHeaderCell> 7 <asp:TableHeaderCell ID="Header_Status" Text="Status" Width="150"runat="server" style="border: 1px solid"></asp:TableHeaderCell> 8 </asp:TableHeaderRow> 9 </asp:Table>
C#側
C#
1//プルダウンメニューにて選択した項目別に表示するデータを切り替え、ボタンを押して実行 2protected void Btn_Click(object sender, EventArgs e) 3 { 4 string filePath = "XMLファイルがあるフォルダのパス"; 5 string xmlPath = string.Empty; 6 7 switch(Ddl_List.SelectedValue) { 8 case "1": 9 //デフォルトで選択している空白の状態 10 return; 11 case "2": 12 xmlPath = Path.Combine(filePath,"1.xml"); 13 break; 14 case "3": 15 xmlPath = Path.Combine(filePath,"2.xml"); 16 break; 17 case "4": 18 xmlPath = Path.Combine(filePath, "3.xml"); 19 break; 20 case "5": 21 xmlPath = Path.Combine(filePath, "4.xml"); 22 break; 23 default: 24 return; 25 } 26 //XmlRender生成 27 XmlReader reader = null; 28 29 30 try { 31 //XML読み込み 32 reader = new XmlTextReader(xmlPath); 33 34 int no = 0; 35 string name = string.Empty; 36 string add = string.Empty; 37 string skill = string.Empty; 38 string status = string.Empty; 39 40 while(reader.Read()) { 41 if(reader.NodeType == XmlNodeType.Element) { 42 43 switch(reader.LocalName) { 44 case "no": 45 no = int.Parse(reader.ReadString()); 46 break; 47 case "name": 48 name = reader.ReadString(); 49 break; 50 case "add": 51 add = reader.ReadString(); 52 break; 53 case "skill": 54 skill = reader.ReadString(); 55 break; 56 case "status": 57 status = reader.ReadString(); 58 59 //一覧セット 60 //下に書いてある関数です。 61 setList(no, name, add, skill, status); 62 63 //初期化 64 no = 0; 65 name = string.Empty; 66 add = string.Empty; 67 skill = string.Empty; 68 status = string.Empty; 69 break; 70 default: 71 break; 72 } 73 } 74 } 75 } 76 77 catch(Exception ex) { 78 //lbl_Errorは画面にエラー表示させるラベルです。 79 lbl_Error.Text = "データ取得に失敗しました。"; 80 lbl_Error.Visible = true; 81 } 82 finally { 83 reader.Close(); 84 85 } 86 } 87 private void setList(int no, string name, string add, string skill, string status) { 88 // テーブル(行)オブジェクト 89 TableRow row = new TableRow(); 90 91 // テーブル(セル)オブジェクト 92 TableCell cell = new TableCell(); 93 94 string[] IdName = { "lbl_No", "lbl_Name", "lbl_Add", "lbl_Skill", "lbl_Status" }; 95 string[] Text = { no.ToString(), name, add, skill, status }; 96 97 for (int i = 0; i < IdName.Length; i++) 98 { 99 // セルにNoのデータセット 100 cell.ID = IdName[i]; 101 cell.Text = Text[i]; 102 cell.BorderStyle = BorderStyle.Solid; 103 cell.BorderWidth = 1; 104 if(cell.ID == "lbl_No") 105 cell.HorizontalAlign = HorizontalAlign.Right; 106 else 107 cell.HorizontalAlign = HorizontalAlign.Center; 108 // 行にセルを追加 109 row.Cells.Add(cell); 110 // セルを再生成 111 cell = new TableCell(); 112 } 113 Tbl_memberlist.Rows.Add(row); 114 } 115 } 116}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/04 05:03
退会済みユーザー
2015/08/04 05:23