我有一个SharePoint工作流程,只要项目发生变化就会运行.工作流与外部REST服务通信.如果服务返回一个字符串,我想用该字符串更新其中一个字段值.不幸的是,一旦当前工作流终止,此更新将触发此项的工作流的另一个实例.我最终得到了一个无限循环!
我怎么能防止这种情况发生?SPListItem具有Update(),UpdateOverwriteVersion()和SystemUpdate()方法,但它们似乎都不会阻止后续工作流被触发.
我可以检查项目的最后修改时间戳,并在最后一次更新发生在特定时间范围内时终止工作流程,但我正在寻找更强大的解决方案.
我有一个SharePoint网页,它引用存储在 img标记内的SharePoint列表的RootFolder中的SVG文件:
<img src='http://localhost/Lists/MyList/1/1.svg' type='image/svg+xml' />
Run Code Online (Sandbox Code Playgroud)
图像在桌面上以及iOS设备(Safari)上的IE9中正确呈现.但是,在Windows上的Chrome中(我目前使用的是v14)无法显示.它改为渲染破碎的图像图标.
Chrome中的网络选项卡显示文件1.svg是作为application/octet-stream下载的(因此渲染不正确).我需要更改什么才能让Chrome正确识别MIME类型(如标记中所指定)?它可能是Chrome中的一个错误(正如这个SO答案所示)?如果是这样,是否有办法以另一种方式加载SVG文件(例如,嵌入标签)?
请注意,IE的调试器(F12)正确地将类型标识为image/svg + xml,因此会按预期呈现图像.
编辑:由于它似乎是一个服务器端问题(感谢@robertc)我添加了这样一个事实,即该文件由SharePoint提供,怀疑SharePoint可能无法识别MIME类型.
我在Window 10开发机器上安装了Visual Studio 2015 Enterprise.我可以创建一个新的通用Windows平台应用程序,并在模拟器和本地计算机上运行它.
但是,当我选择5个预先安装的Mobile Emulators中的任何一个并开始调试时,我看到正在启动模拟器应用程序(XDE.exe),但随后我立即收到一个错误对话框,其中包含以下消息:
模拟器无法在虚拟机上设置某些属性:无法更改虚拟机的显示控制器设置:.... Mobile Emulator 10.0.10240.0 WVGA 4英寸...虚拟机的配置版本不支持设置分辨率类型,水平分辨率或垂直分辨率.
当我打开Hyper-V管理器时,我可以看到安装了3个虚拟机.我甚至可以启动它们,它们最终会以预期的分辨率和方向显示Windows Phone 10主屏幕.
以常规用户或管理员身份运行Visual Studio 2015时会发生这种情况.
在我的Silverlight 3用户控件中,我显示了一个基本的DataGrid控件.我需要以编程方式生成列,如下所示:
Style headerStyle = (Style)Resources["ColumnHeaderStyle"];
DataGridTextColumn col = new DataGridTextColumn();
col.HeaderStyle = headerStyle;
dataGrid.Columns.Add(col);
Run Code Online (Sandbox Code Playgroud)
样式定义如下:
<Style x:Name="ColumnStyle" x:Key="ColumnHeaderStyle"
TargetType="prim:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Loaded="StackPanel_Loaded">
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Data}" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
我想将标题的数据上下文设置为"标题"对象(具有"名称"和"数据"属性,这些属性在DataTemplate中引用).不幸的是,我无法在其他地方使用StackPanel_Loaded事件,因为当用户启动列拖放操作时也会调用事件处理程序.
设置DataGrid列标题的DataContext的正确方法是什么?
在我的WPF项目中,我需要呈现基于HTML的内容,其中内容存储在我的WPF项目引用的资源程序集中.
我查看了WPF Frame和WebBrowser控件.不幸的是,它们都只暴露导航事件(导航,导航),但不允许任何允许我根据请求的URL返回从资源程序集中检索的HTML内容的事件.
我可以使用Navigating事件和NavigateToString()方法拦截导航请求并提供HTML内容.但这不适用于拦截图像,CSS文件等的加载调用.
此外,我知道一个HTML to Flowdocument SDK示例应用程序可能很有用,但我可能不得不大大扩展示例来处理图像和样式表.
对于它的价值,我们还生成要呈现的HTML内容(通过Wiki页面),因此源HTML对于引用的图像位置和使用的CSS样式表而言在某种程度上是可预测的(例如,可能没有JavaScript).我们希望从互联网上显示随机HTML内容.
更新: 还可以为每个HTML页面创建一个MHT文件,这样可以将所有图像"内联"为MIME类型,并减少需要进行更细粒度的回调.
我试图同步 2 WPF DataGrid控件的水平滚动位置.
我正在订阅第一个DataGrid 的ScrollChanged事件:
<toolkit:DataGrid x:Name="SourceGrid" ScrollViewer.ScrollChanged="SourceGrid_ScrollChanged">
Run Code Online (Sandbox Code Playgroud)
我有第二个DataGrid:
<toolkit:DataGrid x:Name="TargetGrid">
Run Code Online (Sandbox Code Playgroud)
在我尝试使用的事件处理程序中IScrollInfo.SetHorizontalOffset,但是唉,DataGrid没有公开IScrollInfo:
private void SourceGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
((IScrollInfo)TargetGrid).SetHorizontalOffset(e.HorizontalOffset);
// cast to IScrollInfo fails
}
Run Code Online (Sandbox Code Playgroud)
还有另一种方法来实现这一目标吗?或者TargetGrid上是否有另一个元素暴露了IScrollInfo实现滚动位置同步所必需的元素?
顺便说一下,我使用的是冻结列,所以我不能用ScrollViewers包装两个DataGrid控件.
我已经产生了C#的SharePoint工作流顺序使用非常方便的项目STSDEV工具(这让我周围的要求,有机会获得所需要的其他工具,如VSeWSS的1.3 32位SharePoint安装).
我添加了一个简单的"修改标题"操作来测试我的基本设置:
public sealed partial class CopyWorkflow : SharePointSequentialWorkflowActivity
{
public CopyWorkflow()
{
InitializeComponent();
workflowProperties = new SPWorkflowActivationProperties();
}
public SPWorkflowActivationProperties workflowProperties;
private void onWorkflowActivated1_Invoked_1(object sender, ExternalDataEventArgs e)
{
workflowProperties.Item["Title"] = workflowProperties.Item["Title"].ToString() + ": Processed by Workflow";
workflowProperties.Item.Update();
}
}
Run Code Online (Sandbox Code Playgroud)
无论是谁,通过WSP安装我的工作流程到WSS 3.0的安装,激活功能,并配置工作流程以便在为特定列表创建新项目时启动,我在onWorkflowActivated1_Invoked_1点击中获取断点,但workflowProperties.Item是始终为NULL而不是表示刚刚添加的项的SPListItem.
在调用此回调时,我需要做什么才能填充Item?
更新:我注意到执行工作流程的线程是匿名运行而不是登录用户或系统用户,因此无法访问列表数据.此外,SharePoint日志文件显示以下异常:
Unexpected System.ArgumentNullException: Value cannot be null. Parameter name: uriString at System.Uri..ctor(String uriString) at Microsoft.SharePoint.SPSite..ctor(String requestUrl) at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties.<get_Site>b__0() at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state) at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated …
我正在使用Azure Functions Preview并想要添加QueueTrigerFunction.
该函数定义如下:
[FunctionName("QueueTrigger")]
public static void Run([QueueTrigger("testqueue1", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
}
Run Code Online (Sandbox Code Playgroud)
使用local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=test1storage;AccountKey=XXXXX==;EndpointSuffix=core.windows.net/;",
"AzureWebJobsDashboard": ""
}
}
Run Code Online (Sandbox Code Playgroud)
当我启动VS调试器时,我收到以下错误消息:
[8/5/2017 1:07:56 AM] Microsoft.WindowsAzure.Storage:找不到有效的帐户信息组合.
我错过了什么?Azure中是否有一些其他设置需要检查以确保正确配置此方案?
azure azure-storage-queues azure-functions azure-functions-runtime
在我的机器我安装VSeWSS的1.3和配置的本地IIS 6,这样我可以建立我的SharePoint项目和部署的生成WSP文件到本地机器.WSP文件由Packaging步骤生成,我可以在其他计算机上成功安装.
现在我必须将我的项目迁移到我们的构建机器,该机器当前没有安装SharePoint并且没有为VSeWSS配置(没有VSeWSS Web服务端点).有没有办法自动构建WSP文件,而无需在构建计算机上配置IIS以与SharePoint和VSeWSS一起使用?
有些书描述了使用MakeCab.exe和定义DDF文件的手动步骤,但我没有看到VSeWSS生成的任何DDF文件(它是否可以在TEMP文件夹中生成,我可以使用它来配置我的自动构建过程?).
我有一个WPF ListBox控件,显示RSS源的项目.我偶尔会检查RSS源的来源以获取新项目.一旦我检测到一个新项目,我就将它添加到observable集合中,该集合立即将新项目添加到ListBox显示中.
有没有办法从顶部"滑入"新项目,推倒现有项目?我怎么会达到这样的效果?可以使用ListBox完成,还是需要使用我自己的容器,例如StackPanel和动画,例如以编程方式添加新控件的高度?
我通过将面板的不透明度值设置为0.5,在WPF中构建了一个半透明的自定义布局面板.一切都按预期工作,除了面板的孩子也是半透明的!
我需要更改以使面板的子项在没有透明度的情况下呈现?
这是相关的代码:
public class DialogLayoutPanelControl : Panel
{
public DialogLayoutPanelControl() : base()
{
Background = Brushes.LightGray;
Opacity = 0.5;
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案(Anvaka):
Background = new SolidColorBrush(Colors.LightGray) { Opacity = 0.5 };
Run Code Online (Sandbox Code Playgroud) 我在一个简单的MonoTouch iPad应用程序中使用以下代码:
if (NSUserDefaults.StandardUserDefaults.StringForKey("spid") == null)
{
NSUserDefaults.StandardUserDefaults.SetString ("spid", "myName");
NSUserDefaults.StandardUserDefaults.SetString ("spdomain", "myDomain");
NSUserDefaults.StandardUserDefaults.SetString ("sppwd", "myPassword");
NSUserDefaults.StandardUserDefaults.Synchronize();
}
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential(NSUserDefaults.StandardUserDefaults.StringForKey("spid"),
NSUserDefaults.StandardUserDefaults.StringForKey("sppwd"),
NSUserDefaults.StandardUserDefaults.StringForKey("spdomain"));
Run Code Online (Sandbox Code Playgroud)
意图(现在直到我建立了正确的视图)是提供将存储在plist文件中的默认凭证(稍后它将被移动到KeyChain中以获得更好的安全性).但是,对StringForKey("spid")等的调用返回null而不是"myName".
为什么在调用Synchronize()后我的默认值不会保留?即使在每个SetString()之后添加Synchronize()调用也无法解决问题.
wpf ×4
sharepoint ×3
datagrid ×2
workflow ×2
azure ×1
columnheader ×1
controls ×1
effect ×1
html ×1
html5 ×1
layout ×1
listbox ×1
mhtml ×1
mime-types ×1
panel ×1
scroll ×1
silverlight ×1
svg ×1
transparency ×1
vsewss ×1
wss-3.0 ×1
xamarin.ios ×1