我有一个PhoneGap/Apache Cordova应用程序,我已经将自己的index.html页面插入到www文件夹中,但是当我运行应用程序时它没有进入index.html页面,而是启动了启动画面"设备准备就绪"消息.我在哪里配置启动页面?
Index.html页面:
<html>
<head>
<script src="jquery-2.1.1.js"></script>
<link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.4.4.min.css" />
<script src="jquery.mobile/jquery.mobile-1.4.4.min.js"></script>
</head>
<body>
<div data-role="header" data-theme="b" class="ui-bar ui-bar-b">
<h1>Welcome to my app!</h1>
</div>
Username <input type="text" id="username" name="Username"></input><br>
Password <input type="text" id="password" name="Password"></input>
<button id="submit">Submit</button>
<div data-role="footer" data-theme="b" class="ui-bar ui-bar-b"><h1>Placeholder</h1></div>
</body>
<style type="text/css">
body{
border:0;
}
</style>
</html>
Run Code Online (Sandbox Code Playgroud) 首先是上下文,我是软件开发公司自动化团队的安置学生,因此我帮助开发日常构建的自动化测试程序.
我的直线经理制作了一份excel文件,用于展示我们测试环境的结果.我们的测试在hyper-V服务器上的虚拟PC上运行.
我希望能够使用每个测试环境中的测试结果更新此excel文档,但我不确定应该如何执行此操作.
每个虚拟PC都运行一个自动化程序(C#.NET 4.0),并且当前将测试日志和结果文件复制到我们的构建机器上的共享文件夹中,每个人都可以访问该文件夹.
所以我希望自动化程序运行它的测试,然后当它完成时,我希望它用测试结果写入excel文档中的表.有没有人以编程方式修改excel文档的经验?我还应该注意,excel文档将存储在远程虚拟PC上的共享文件夹中(可从测试环境访问)
该表将包含构建名称/日期,环境详细信息,测试类型和测试结果等.
我已经收集了这些信息并将其呈现在HTML文件中 - 但每个测试环境都有一个单独的HTML文件.这样做的目的是使结果都在一个地方(excel文档将负责以图形和图表的形式在表格中呈现数据).
实际上,我需要知道的是如何从.NET程序写入excel文档中的表.似乎有不同的方法这样做(正如我在网上研究时发现的那样),所以我想问一下stackoverflow看谁知道最好的方法来做到这一点).
我一直在按照"Microsoft Enterprise Library 5.0"文档中的步骤创建一个HTTP模块,以将对Enterprise Library容器的引用注入到ASP.NET Web应用程序的页面中.
它包含以下代码(也可在此处在线显示):
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using Microsoft.Practices.Unity;
namespace Unity.Web
{
public class UnityHttpModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += OnPreRequestHandlerExecute;
}
public void Dispose() { }
private void OnPreRequestHandlerExecute(object sender, EventArgs e)
{
IHttpHandler currentHandler = HttpContext.Current.Handler;
HttpContext.Current.Application.GetContainer().BuildUp(
currentHandler.GetType(), currentHandler);
// User Controls are ready to be built up after page initialization is complete
var currentPage = HttpContext.Current.Handler as Page;
if (currentPage != null) …Run Code Online (Sandbox Code Playgroud) 我的项目非常大,并且有大量的测试步骤。结果,当我编写“功能”文件时,我发现我的计算机停止运行。在非常大的功能文件上,即使不输入任何内容,我的一个 CPU 内核也会达到最大值,并且性能会下降到输入非常滞后的程度,迫使我重新启动 Visual Studio。
即使在较小的功能文件上,编写功能文件时的性能也非常慢,因为 Specflow 智能感知会查看项目中的所有测试步骤。
有没有办法禁用 Specflow 智能感知,甚至阻止 Specflow 分析步骤绑定?我能做些什么来提高这里的性能吗?
我有一个视图模型绑定到'TreasureHuntDetails'对象,其中包含一个线索列表.这是它的数据模型的一部分.
public TreasureHuntDetails()
{
Clues = new List<Clue>();
}
[Key]
public int TreasureHuntId { get; set; }
public List<Clue> Clues { get; set; }
Run Code Online (Sandbox Code Playgroud)
在页面上,我有一张桌子.foreach循环遍历线索列表以将它们添加到表中,例如
@for (int i = 0; i < Model.Clues.Count; i++)
Run Code Online (Sandbox Code Playgroud)
for循环中的表元素非常大,但这里是一个表元素列的示例:
<td>@Html.DisplayFor(m => Model.Clues[i].Location)</td>
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利.然后我使用JQuery UI来允许使用拖放重新排序表的项目,如下所示:
<script type="text/javascript">
$(document).ready(function()
{
$("#clueTable tbody").sortable().disableSelection();
});
</script>
Run Code Online (Sandbox Code Playgroud)
一切都很好,我可以拖放元素.
问题是我不知道如何保存元素的新顺序并将它们保存回数据库.
我尝试的第一件事就是将线索列表传递给控制器方法,但我发现一旦线索列表到达控制器方法,它总是为空.
例如:
@Url.Action("ViewCluePage", @Model.Clues)
Run Code Online (Sandbox Code Playgroud)
即使我发送整个@Model,其中的线索列表也始终为null.从数据模型的构造函数中删除新的列表实例化并没有解决此问题.
我尝试的另一件事是将整个表格包装成HTML表单,但线索列表仍然为空.
所以基本上,这个问题实际上是两个问题:
1)为什么在将模型对象发送到控制器后,线索列表始终为空.
2)如何保存项目列表的新订单?
更新:根据@recursive的建议,我在尝试将线索元素提交到HTML表单时看到我在哪里犯了错误.
我在for循环之外使用了这个迭代线索元素:
@Html.HiddenFor(m => m.Clues)
Run Code Online (Sandbox Code Playgroud)
我必须在for循环中添加HiddenFor行(对于每个线索项),并且对于线索项的EACH属性,例如
@Html.HiddenFor(m => m.Clues[i].Id)
Run Code Online (Sandbox Code Playgroud)
这样才能将列表项目发送到控制器,这是向前迈出的一步,但我认为我仍然需要能够在发送到控制器时反映线索项目的新顺序的代码.目前,在使用JQuery sortable()方法重新排列屏幕上元素的顺序时,这不会更改元素的顺序,因为它们存储在绑定到视图的数据模型中(@ Model.Clues).
在 Oracle SQL Developer 中,如何为表定义中的列设置默认值?
(在 SQL Developer 3.2 中)
我试图掌握从手机捕获音频然后允许播放的基础知识.
目前我有一个"开始"按钮和一个"结束"按钮.
"开始"按钮调用我的异步"CaptureAudio"方法,并调用"结束"按钮调用"StopCapture"异步方法:
private async void CaptureAudio()
{
_mediaCaptureManager = new MediaCapture();
var settings = new MediaCaptureInitializationSettings();
settings.StreamingCaptureMode = StreamingCaptureMode.Audio;
settings.MediaCategory = MediaCategory.Other;
settings.AudioProcessing = (_rawAudioSupported && _userRequestedRaw)
? AudioProcessing.Raw
: AudioProcessing.Default;
await _mediaCaptureManager.InitializeAsync(settings);
}
private async void StopCapture()
{
await _mediaCaptureManager.StopRecordAsync();
}
Run Code Online (Sandbox Code Playgroud)
我通过MSDN查看了一些示例,但不幸的是,样本和文档似乎无法提供用于捕获音频的完整工作示例代码(MSDN文档提供了通过MediaCapture类捕获视频的示例,我看到了一个示例代码项目在我下载的MSDN上,它似乎没有工作,因为它没有建立).
我要做的就是根据用户要求再次播放录制的音频.
一个查询我是否是我必须保存录音并保存到手机的磁盘,或者我是否可以简单地保持它在内存中,然后从内存播放音频回来.
我该怎么做呢?
我不是在寻找确切的答案,即使是其他样本或文档的链接也会对我有所帮助.
谢谢
(请在标记为重复之前阅读,因为我的特定方案是唯一的)
我有以下代码:
// Get each treasure hunt
var treasureHunts = dbContext.TreasureHunts.Where(i => i.UserName == User.Identity.Name).ToList();
// Populate each treasure hunt with the list of leaderboard entries
for (int i = 0; i <= treasureHunts.Count; i++)
{
treasureHunts[i].Leaderboard = dbContext.Leaderboard.Where(
leaderboard => leaderboard.TreasureHuntId == treasureHunts[i].TreasureHuntId).ToList();
}
Run Code Online (Sandbox Code Playgroud)
在运行该程序时,我从第二个数据库查询(dbContext.Leaderboard.Where ...)得到以下错误:
LINQ to Entities无法识别方法'QrCodeTreasureHunter.Models.TreasureHuntDetails get_Item(Int32)'方法,并且此方法无法转换为存储表达式.
在第一个查询中,我得到了与特定用户相关的每个寻宝活动.
在第二部分中,我试图遍历每个寻宝行为,并使用我的排行榜表中的相关排行榜条目填充寻宝的排行榜列表属性.
从我从阅读中理解的是,这个查询在其当前形式的Entity Framework中是不可能的.
您可以推荐哪些解决方法或解决方案来解决此问题?理想的解决方案是不需要更改数据模型.
如果它是相关的,这里是TreasureHunt模型:
public class TreasureHuntDetails
{
public TreasureHuntDetails()
{
Clues = new List<Clue>();
Leaderboard = new List<Leaderboard>();
var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
var dcs = new …Run Code Online (Sandbox Code Playgroud) 我有一组字符串,如下所示:
List<string> codes = new List<string>
{
"44.01", "44.02", "44.03", "44.04", "44.05", "44.06", "44.07", "44.08", "46", "47.10"
};
Run Code Online (Sandbox Code Playgroud)
每个字符串由两个由句号分隔的组件组成 - 前缀代码和子代码.一些字符串没有子代码.
我希望能够组合前缀相同的字符串,并将其输出如下,其他代码也是:
44(01,02,03,04,05,06,07,08),46,47.10
我陷入了第一个障碍,即如何识别和组合前缀值相同的代码,以便我可以将它们组合成一个字符串,如上所示.
我有代码使用StreamReader从文件中读取HTML,然后调用ReadToEnd()函数.HTML存储为字符串.
然后我调用这行代码:
string bookmarksBar = HTMLDoc.Substring(HTMLDoc.IndexOf(">Bookmarks bar</H3>"), HTMLDoc.IndexOf("</DL><p>"));
Run Code Online (Sandbox Code Playgroud)
所以这里发生的是我想要HTML的特定部分,所以我使用字符串Substring方法.第一个参数是startIndex,第二个参数是length.
我正在使用IndexOf方法,以便这行代码将返回一段应该在">Bookmarks bar</H3>"和之间的文本"</DL><p>"
所以返回的字符串的结尾应该"</DL><p>"是找到的位置,对吧?
那么问题是字符串不会在</DL><p>找到的地方结束,但在此行结束时会结束323个字符(我插入了四个星号来说明返回的字符串结束的位置):
ICON="data:image/png;base64,iVBORw0KGgoAAA****ANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABbklEQVQ4je3RPWuTYQCF4fs875uYKEilOA
Run Code Online (Sandbox Code Playgroud)
我无法理解它为什么会在这里结束,因为此时字符串不匹配"</DL><p>".
所以这是HTML的一个更大的部分:
jNpXrXKt4WFgn/KY1J1yBg874KWb0Vmr+BSttzgKt3LuBAAAAAElFTkSuQmCC\"></A>\r\n </DL><p>\r\n <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1301438557\">Link 1</H3>\r\n <DL><p>\r\n <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1286905747\">Link2</H3>\r\n <DL><p>\r\n <DT><A HREF=\"http://creators.xna.com/en-GB/create_detail#tour_four\" ADD_DATE=\"1282073650\" ICON=\"data:image/png;base64,iVBORw0KGgoAAA"
Run Code Online (Sandbox Code Playgroud)
您可以"</DL><p>"在上面的HTML中看到,那么为什么它不会在那时停止,而不是停在"KGgoAAA"?
有任何想法吗?
谢谢