解决 使用C#更新Div

莫拉里51

成员
已加入
2021年1月20日
留言内容
10
编程经验
3-5
非常感谢您对以前使用IIS中的XML和虚拟文件夹的线程的所有帮助

2个问题,如果我可以

1.我的DotNet网络表单-HTML中包含以下内容
HTML:
        <div id="MediaPlayer">
            <table>
                <tr>        
            <td><img alt="spacer" src="graphics/spacer.gif" style="width: 30px; height: 5px" /></td>
            <td class="vtop"><div id="MyTest" runat="server" class="player" data-wimpyPlayer data-skin="wimpy_7.81/wimpy.skins/cool-eq-Robs.tsv" data-startUpText="Welcome" data-media="MusicFavourites/SimpleMinds.xml"></div>       </td>
        </tr>
    </table>
使用C#,我正在尝试修改零件-/SimpleMinds.xml" to /All.xml"

编写了以下内容以将Div检索到文本框中作为测试
C#:
        System.IO.StringWriter sw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter h = new System.Web.UI.HtmlTextWriter(sw);
        MyTest.RenderControl(h);
        txtMsg.Text = sw.GetStringBuilder().ToString();
有没有一种方法可以使用C#更新上面的HTML Div语句

2.另一个异常。我不得不将代码放在UpdatePanel之外,因为当我刷新页面上的元素时,播放器完全消失了,有没有办法在不执行所有其他代码的情况下重新加载播放器?

非常感谢您的帮助
 
由主持人最后编辑:

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,609
地点
弗吉尼亚州切萨皮克
编程经验
10+
Presumably you are asking about WebForms and not Blazor. In WebForms, you cannot update a <div> because the C# code is running on the server, but the <div> is being displayed on the web browser running on the client. The only way to do the update, is to send new data to the client. That's basically what the UpdatePanel does, it keeps on getting new data from the server to present on the client.

Anyway, stepping away from that meta question about page lifetimes and getting into the weeds with your specific question, is that <div> in your OP hardcoded? Shouldn't you be using something like:
C#:
<div id="MyTest"
     runat="server"
     class="player"
     data-wimpyPlayer data-skin="wimpy_7.81/wimpy.skins/cool-eq-Robs.tsv"
     data-startUpText="Welcome"
     data-media="<%= MyPlaylistVariable %>">
</div>
where MyPlaylistVariable contains the string that you want to send to the client.
 

莫拉里51

成员
已加入
2021年1月20日
留言内容
10
编程经验
3-5
Presumably you are asking about WebForms and not Blazor. In WebForms, you cannot update a <div> because the C# code is running on the server, but the <div> is being displayed on the web browser running on the client. The only way to do the update, is to send new data to the client. That's basically what the UpdatePanel does, it keeps on getting new data from the server to present on the client.

Anyway, stepping away from that meta question about page lifetimes and getting into the weeds with your specific question, is that <div> in your OP hardcoded? Shouldn't you be using something like:
C#:
<div id="MyTest"
     runat="server"
     class="player"
     data-wimpyPlayer data-skin="wimpy_7.81/wimpy.skins/cool-eq-Robs.tsv"
     data-startUpText="Welcome"
     data-media="<%= MyPlaylistVariable %>">
</div>
where MyPlaylistVariable contains the string that you want to send to the client.
晚上
It is a webform, how would I pass the string MyPlaylistVariable to the client

非常感谢[/ icode]
 
由主持人最后编辑:

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,609
地点
弗吉尼亚州切萨皮克
编程经验
10+
当变量下一次从服务器获取页面时,无论变量的值是什么,都将返回给客户端。

更为有趣的问题是如何使客户端自动请求页面或页面的一部分。对于页面的一部分,您使用UpdatePanel,但似乎您已经限制了它的使用。
 

莫拉里51

成员
已加入
2021年1月20日
留言内容
10
编程经验
3-5
当变量下一次从服务器获取页面时,无论变量的值是什么,都将返回给客户端。

更为有趣的问题是如何使客户端自动请求页面或页面的一部分。对于页面的一部分,您使用UpdatePanel,但似乎您已经限制了它的使用。
步骤如下

1.页面加载后,它会自动在gridview中检索所有可用的mp3
2.您从下拉列表中选择收藏夹文件夹,将其分配给曲目,这些曲目将从数据库中检索
3.在步骤1的gridview中,选择适当的轨道,然后在所需的网格行中按按钮,这将保存SQL Server数据库的路径。
4.按下查看和写入XML按钮-在第3步加载收藏夹列表中包含的轨道,刷新gridview,然后遍历构建xml格式的网格

然后,我希望有另一个ASP按钮,以便在按下该按钮时,它将使用收藏夹下拉列表的TEXT值并将其用作 MyPlaylistVariable,页面会刷新,将新的xml值加载到变量中

我遇到的另一个问题(如您在上面概述的那样)是,所有HTML代码都包含在UpdatePanel中,它们都可以完美地工作。这篇文章顶部概述的Player包含在UpdatePanel之外,它是一个免费的播放器,当将播放器放置在UpdatePanel中时,当执行ASP事件时,播放器消失,当我刷新页面时,它会重新出现,但是所有重置ASP元素

希望以上内容能对您有所帮助
 

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,609
地点
弗吉尼亚州切萨皮克
编程经验
10+
抱歉。我已经放弃了WebForms,就像我放弃实体框架的方式一样。当我以前使用WebForms时,试图使桌面编程范例适合Web客户端-服务器范例非常笨拙。希望更多对WebForms有所投入的人可以提供帮助。我现在只能告诉您的是,您似乎在学习WebForms的过程中跳过了几步,而现在您似乎缺少了一些基础知识,例如如何呈现带有变量的页面或ASP .NET页面有效期。
 

莫拉里51

成员
已加入
2021年1月20日
留言内容
10
编程经验
3-5
在拖网并阅读了几本书之后,提出了以下内容:

以为我会尝试使用jQuery,这是我的第一次尝试,编写了以下内容,

<script>
函数ChangePlaylist()
{
var selected= "MusicFavourites/"+ $(ddlFavFolders).val();
$("#MyTest").attr("data-media",selected)
};
</script>

在我调用保存XML文件后,从ASP按钮添加了以下C#代码
ScriptManager.RegisterStartupScript(this.Page,this.GetType(),"script", "ChangePlaylist();", true);
 
最佳 底部