当前位置: 首页 > 编程语言 > C#

ASP.NET PostBack选择treeview的复选框分享

时间:2023-04-10 22:04:05 C#

C#学习教程:ASP.NETPostBackselecttreeview的checkbox在我的项目中,我有一个带有复选框的数据绑定列表框。当用户单击复选框时,它应该更新示例的标签/文本框。问题是,在我单击执行回发的按钮之前,它不会更新标签/文本框。我如何在复选框更改事件上调用回发,因为“OnTreeNodeCheckChanged”事件似乎仅在回发被触发后才触发?这是个好主意(每次更改复选框时都想调用回发)-更新的代码片段-Asp(尝试在C#部分使用处理程序。)C#protectedvoidcheck_changed(objectsender,TreeNodeEventArgse){lblTest.Text="TestText";}(也尝试在脚本部分使用它)voidcheck_changed(objectsender,EventArgse){lblTest.Text="TestText";}数据绑定到Treeview(这发生在按钮回发上)foreach(DataRowrowinds.Tables[0].Rows){TreeNodenode=newTreeNode(row["courseName"].ToString(),row["courseName"].ToString());//node.PopulateOnDemand=true;treevCourses.Nodes.Add(节点);}//selectfromtopicwhereparentId=topicId.ds=myConClass.returnSqlDataset("selectcd.courseName,ct.[date]fromcourseDetailscdjoincourseTimesctoncd.courseId=ct.courseId");foreach(TreeNodetreenodeintreevCourses.Nodes){foreach(DataRowrowinds.Tables[0].Rows){if(row["courseName"].ToString()==treenode.Value){TreeNodenode=newTreeNode(行[“日期”].ToString(),行[“日期”].ToString());treenode.ChildNodes.Add(节点);}}}TreeView上没有AutoPostBack属性。根据MSDN,当TreeView控件中的复选框在发送到服务器的帖子之间更改状态时,会引发TreeNodeCheckChanged事件。您需要执行其他操作,例如此链接中提到的内容1)将点击属性添加到TreeView1protectedvoidPage_Load(objectsender,EventArgse){TreeView1.Attributes.Add("onclick","postBackByObject()");}2)添加java脚本函数并回发3)。实施TreeNodeCheckChanged事件protectedvoidTreeView1_TreeNodeCheckChanged(objectsender,TreeNodeEventArgse){//dostuff}当您动态绑定TreeView时,单击复选框时不会触发TreeNodeCheckChanged事件,您可以使用一些javascript轻松解决此问题:ASPX:代码隐藏:protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){vardata=newXmlDataSource();data.DataFile=Server.MapPath("~/input.xml");treevCourses.DataSource=数据;treevCourses.DataBind();treevCourses.Attributes.Add("onclick","fireCheckChanged()");}}protectedvoidcheck_changed(objectsender,TreeNodeEventArgse){stringclickedNode=e.Node.Text;System.Diagnostics.Debugger.Break();这是一个好主意-显然每次复选框状态更改时向服务器发送请求可能会占用大量资源,但如果您不能使用javascript复制相同的功能,那么这里是您唯一的选择是替换此行treevCourses。Attributes.Add("onclick","fireCheckChanged()");withtreevCourses.Attributes.Add("onclick","fireCheckChanged(event)");并使用。上面的替换脚本是C#学习教程:ASP.NETPostBack勾选treeview的复选框,共享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——functionfireCheckChanged(e){varevnt=((window.event)?(event):(e));var元素=evnt.srcElement||事件目标;if(element.tagName=="INPUT"&&element.type=="checkbox"){__doPostBack("","");}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: