私はasp.netプロジェクトを持っており、C#で作業しています。
私のプロジェクトには、チェックボックスを持つデータバインドされたリストボックスがあります。
ユーザーがチェックボックスをクリックすると、たとえばラベル/テキストボックスが更新されます。
問題は、ポストバックを行うボタンをクリックするまで、ラベル/テキストボックスを更新しないことです。「OnTreeNodeCheckChanged」イベントは、ポストバックがトリガーされた後にのみ発生するように見えるため、チェックボックス変更イベントでポストバックを呼び出すにはどうすればよいですか? これも良い考えですか(チェックボックスが変更されるたびにポストバックを呼び出したい)
--更新されたコード スニペット-- Asp
<asp:TreeView ID="treevCourses" runat="server" AutoPostBack="true" ShowCheckBoxes="All" Width="100%"
OnTreeNodeCheckChanged="check_changed" Height="16px" ImageSet="Contacts">
(C#部分にハンドラを入れてみました。) C#
protected void check_changed(object sender, TreeNodeEventArgs e)
{
lblTest.Text = "TestText";
}
(スクリプト部分にも入れてみました)
void check_changed(object sender, EventArgs e)
{
lblTest.Text = "TestText";
}
ツリービューへのデータのバインド (これはボタンのポストバックで発生します)
foreach (DataRow row in ds.Tables[0].Rows)
{
TreeNode node = new TreeNode(row["courseName"].ToString(), row["courseName"].ToString());
// node.PopulateOnDemand = true;
treevCourses.Nodes.Add(node);
}
//select from topic where parentId = topicId.
ds = myConClass.returnSqlDataset("select cd.courseName,ct.[date] from courseDetails cd join courseTimes ct on cd.courseId = ct.courseId");
foreach (TreeNode treenode in treevCourses.Nodes)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
if (row["courseName"].ToString() == treenode.Value)
{
TreeNode node = new TreeNode(row["date"].ToString(), row["date"].ToString());
treenode.ChildNodes.Add(node);
}
}
}