DB に 2 つのテーブルがあります。
CATALOGBOOK(idCA, nameCA);// kind of book
BOOK(idBOOK, nameBOOK, idCA);// info about one book
DB からデータをロードした後の TreeView:
+nameCA1
-nameBOOK1
-nameBOOK2
+nameCA2
-nameBOOK1
-nameBOOK2
.....
Webフォームにもテキストボックスがあります。SelectedNodeChanged Event
treenode を選択したときに、そのテキストボックスに本の名前を表示するために使用しますnameBOOK[j]
。SelectedNodeChanged イベントは最初の で正常に機能しましたnameCA[1]
が、ツリーノードを選択するとエラーが発生しnameBOOK[j]
ましたnameCA[2],nameCA[3],...
DB から TreeView にデータをロードしたい:
+nameCA1
-nameBOOK1
-nameBOOK2
+nameCA1
-nameBOOK1
-nameBOOK2
.....
DB から TreeView にデータをロードする関数:
protected void Page_Load(object sender, EventArgs e)
{
LoadTree();
}
private void LoadTree()
{
TreeView1.Nodes.Clear();
string sql = "select * from CATALOGBOOK";
DataTable catalog = l.EXECUTEQUERYSQL(sql);
for (int i = 0; i < catalog.Rows.Count; i++)
{
TreeNode TN = new TreeNode();
TN.Text = catalog.Rows[i][1].ToString();//type of book
TreeNodeSelectAction treeNodeSelectAction = TreeNodeSelectAction.None;
TN.SelectAction = treeNodeSelectAction;
TreeView1.Nodes.Add(TN);
string sql1 = "select * from BOOK where idCA=" + catalog.Rows[i][0].toString();
DataTable book = l.EXECUTEQUERYSQL(sql1);
for (int j = 0; j < book.Rows.Count; j++)
{
TreeNode CN = new TreeNode(book.Rows[j][1].ToString(), book.Rows[j][0].ToString());
CN.Text = book.Rows[j][1].ToString();//name of book
CN.Value = book.Rows[j][0].ToString();//id of book
TN.ChildNodes.Add(CN);
}
}
}//end of loadtree();
public void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
this.TextBox1.Text = TreeView1.SelectedNode.Value.ToString();
}
私が得た問題は次のとおりです。this.TextBox1.Text = TreeView1.SelectedNode.Value.ToString();
<asp:TreeView OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" ID="TreeView1" runat="server" ImageSet="Simple"
Width="183px">
<HoverNodeStyle BorderStyle="Inset" />
<LeafNodeStyle Font-Italic="True" Font-Size="Smaller" />
<LevelStyles>
<asp:TreeNodeStyle Font-Bold="True" Font-Underline="False" />
<asp:TreeNodeStyle Font-Underline="False" />
<asp:TreeNodeStyle Font-Italic="True" Font-Underline="False" />
</LevelStyles>
<SelectedNodeStyle Font-Overline="False" Font-Underline="True" />
</asp:TreeView>
間違いはないですか???