小编Dav*_*het的帖子

如何避免打开以编程方式生成的 Excel 文件时出现警告

我以编程方式使用 XML 生成 Excel 文件。然后尝试打开该文件时,我收到以下消息:

“您尝试打开的文件‘MyFile.xls’的格式与文件扩展名指定的格式不同。在打开该文件之前,请验证该文件未损坏且来源可靠。是否要打开现在文件?”

当用户按“是”时,文件打开不会出现问题。但这个警告和需要进行额外的点击很烦人。我怎样才能摆脱它呢?

这是我的代码的一部分:

        var stream = File.Create(path);
        var w = new XmlTextWriter(stream, null); // Creates the XML writer from pre-declared stream.

        //First Write the Excel Header
        w.WriteStartDocument();
        w.WriteProcessingInstruction("mso-application", "progid='Excel.Sheet'");

        w.WriteStartElement("Workbook");
        w.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:spreadsheet");
        w.WriteAttributeString("xmlns", "o", null, "urn:schemas-microsoft-com:office:office");
        w.WriteAttributeString("xmlns", "x", null, "urn:schemas-microsoft-com:office:excel");
        w.WriteAttributeString("xmlns", "ss", null, "urn:schemas-microsoft-com:office:spreadsheet");
        w.WriteAttributeString("xmlns", "html", null, "http://www.w3.org/TR/REC-html40");

        w.WriteStartElement("DocumentProperties");
        w.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:office");
        w.WriteEndElement();

        // Creates the workbook
        w.WriteStartElement("ExcelWorkbook");
        w.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:excel");
        w.WriteEndElement();
Run Code Online (Sandbox Code Playgroud)

c# excel

5
推荐指数
1
解决办法
2649
查看次数

如何在 MVC4 中使用 Html.ListBoxFor

我正在尝试填充一个列表框。我的模型只是一个列表。我找不到我需要与@Html.ListBoxFor() 一起使用的参数的简单解释。

这是我的代码的一部分:

public ActionResult Index()
{
     List<string> names = GetAllNames();

    return View(names);
}

...
Run Code Online (Sandbox Code Playgroud)

在视图中:

@model List<string>

...

@Html.ListBoxFor(?)
Run Code Online (Sandbox Code Playgroud)

谢谢。

c# asp.net-mvc-4

5
推荐指数
1
解决办法
2万
查看次数

使用Caliburn.Micro在DataGrid中选择多个记录

我有一个使用Caliburn.Micro的WPF应用程序.

DataGrid有一个属性SelectedItem ="{Binding Path = SelectedUsageRecord}"

如您所见,SelectedItem绑定到SelectedUsageRecord属性.但我需要能够处理选择多个记录.这可以将多个记录绑定到集合属性吗?我没有看到像"SelectedItems"这样的东西......谢谢.

wpf caliburn.micro

4
推荐指数
2
解决办法
2124
查看次数

正则表达式不能正常工作

我需要验证一个帐号.它应该只有数字,有9或10个字符.我试过这个:

return Regex.IsMatch(id, "[0-9]{9,10}");
Run Code Online (Sandbox Code Playgroud)

但这不能正常工作,因为如果数字是"1234567890blah",它返回true.你能帮忙吗,因为我对正则表达式不是很好吗?

谢谢.

c# regex

4
推荐指数
1
解决办法
607
查看次数

列表框:所选项目未突出显示

在我的 WPF 应用程序中,我有一个简单的列表框:

                 <ListBox x:Name="lbUtilities">
                    <ListBoxItem Tag="2" Content="One" IsSelected="True" />
                    <ListBoxItem Tag="5" Content="Two" />
                 </ListBox>
Run Code Online (Sandbox Code Playgroud)

问题是,当列表框第一次出现时,所选项目(“One”)不会突出显示。如果我点击任何项目,它就会突出显示。如何让默认选择的项目突出显示为系统颜色?

谢谢。

wpf listbox

4
推荐指数
1
解决办法
7724
查看次数

检查约束调用函数在更新时不起作用

我创建了一个防止分配在一个表中超过另一个表库存(请参见我刚才的问题的细节约束这里).但由于某种原因,只有当我插入新的分配时,约束才能按预期工作,但是在更新时它不会阻止违规.

这是我的约束:

([dbo].[fn_AllocationIsValid]([Itemid]) = 1)
Run Code Online (Sandbox Code Playgroud)

这是功能:

CREATE FUNCTION [dbo].[fn_AllocationIsValid] (@itemId as int)  
RETURNS int  AS  
BEGIN 
DECLARE @isValid bit;

SELECT @isValid = CASE WHEN ISNULL(SUM(Allocation), 0) <= MAX(Inventory) THEN 1 ELSE 0 END
FROM Allocations A 
JOIN Items I ON I.Id = A.ItemId
WHERE I.Id = @itemId
GROUP BY I.Id;

RETURN @isValid;
END
Run Code Online (Sandbox Code Playgroud)

谢谢.

添加:

这是我的表格:

CREATE TABLE [allocations] (
[userID] [bigint] NOT NULL ,
[itemID] [int] NOT NULL ,
[allocation] [bigint] NOT NULL ,
CONSTRAINT [PK_allocations] PRIMARY …
Run Code Online (Sandbox Code Playgroud)

sql-server constraints

4
推荐指数
1
解决办法
807
查看次数

该应用程序未启用钥匙串访问组

我们有一个 Xamarin.Forms 应用程序,并尝试使用 MSAL 身份验证,并面临 iOS 项目的问题。它可以在模拟器中运行,但是当由Azure管道构建并安装在真实的iPhone上时,会发生异常:

MSAL.Xamarin.iOS.4.14.0.MsalClient 异常:ErrorCode:missing_entitlements Microsoft.Identity.Client.MsalClientException:应用程序未在 Entitlements.plist 中启用钥匙串访问组。结果,无法保存到 iOS 钥匙串。Entitlements.plist 中未启用钥匙串访问组“OURID.com.microsoft.adalcache”...

OURID 当然是真实值的替代品。

这是 entitlements.plist 中的内容:

 <key>keychain-access-groups</key>
  <array>
     <string>$(AppIdentifierPrefix)com.microsoft.adalcache</string>
  </array>
Run Code Online (Sandbox Code Playgroud)

在 B2CAuthenticationService 构造函数中:

            var builder = PublicClientApplicationBuilder.Create(B2CConstants.ClientID)
            .WithB2CAuthority(B2CConstants.AuthoritySignInSignUp)
            .WithIosKeychainSecurityGroup(B2CConstants.IOSKeyChainGroup)
            .WithRedirectUri($"msal{B2CConstants.ClientID}://auth");
Run Code Online (Sandbox Code Playgroud)

我可能缺少什么导致异常?

添加:如果我向管道添加变量替换任务,即使这样,它们也只能替换 xml 和 json 配置文件中的值;不是 plist 文件。

xamarin.ios ios xamarin.forms azure-ad-msal

4
推荐指数
1
解决办法
1658
查看次数

从javascript和代码隐藏中访问<div>

我有一个带有style ="display:none"的div.按下html按钮时div应该可见:

function JSAdd() {
    document.getElementById('divDetail').style.display = "block";
}
    <div style="float:left">

    <div id="ctl00_MainContent_upnlLbRD">





            <select size="4" name="ctl00$MainContent$lbRD" id="ctl00_MainContent_lbRD" style="width:188px;">

    <option value="5">one</option>
    <option value="1">two</option>
</select>
Run Code Online (Sandbox Code Playgroud)

    <input id="btnAdd" type="button" value="????????" onclick="JSAdd();" />
    <input id="btnEdit" type="button" value="?????????????" onclick="JSEdit();" />
</div>
<div id="ctl00_MainContent_divDetail" style="display:none" clientidmode="static">
    <div id="ctl00_MainContent_upnlDescription">

            <div>

                <span id="ctl00_MainContent_lblDescription">????????:</span>

                <input name="ctl00$MainContent$txtDescription" type="text" id="ctl00_MainContent_txtDescription" />  

                <span id="ctl00_MainContent_txtDescriptionRequiredFieldValidator" style="color:Red;visibility:hidden;">???????? ???????? ???????????? ??? ??????????</span>

            </div>

            <input type="submit" name="ctl00$MainContent$btnSave" value="?????????" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContent$btnSave&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_MainContent_btnSave" />   
Run Code Online (Sandbox Code Playgroud)

我需要能够从代码隐藏中再次使div不可见.我不能访问div,除非它是runat="server".但是当我添加runat ="server"时,从上面的javascript函数按下按钮时div不会显示.你能帮帮我吗?

谢谢,
大卫

javascript c# asp.net

3
推荐指数
1
解决办法
3万
查看次数

Caliburn.Micro:无法关闭标签

在我的WPF Caliburn.Micro应用程序中,我有一个TabControl.我希望能够根据需要关闭标签.我在这里找到了一种方法:

http://devlicio.us/blogs/rob_eisenberg/archive/2010/10/19/caliburn-micro-soup-to-nuts-part-6c-simple-mdi-with-screen-collections.aspx

但是当我尝试应用它时,我收到一个错误:

找不到方法CloseItem的目标.

这是我的代码:

   <TabControl x:Name="Items" >
    <TabControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding DisplayName}" />
                <Button Content="X"  
                            cal:Message.Attach="CloseItem($dataContext)" />
            </StackPanel>
        </DataTemplate>
    </TabControl.ItemTemplate>
</TabControl>
Run Code Online (Sandbox Code Playgroud)

能否请你帮忙?

谢谢.

wpf tabcontrol caliburn.micro

3
推荐指数
1
解决办法
742
查看次数

Caliburn.Micro Action不起作用

我有一个与Caliburn.Micro的WPF应用程序.

我想处理滑块的移动,即MouseUp事件.

<Slider cal:Message.Attach="[Event MouseUp] = [Action OnSliderMouseUp($this)]"  
        Value="{Binding  PlayerPosition, Mode=OneWay}" MinWidth="200" 
        VerticalAlignment="Center" Minimum="0" 
        Maximum="{Binding Player.NaturalDuration.TimeSpan.TotalMilliseconds}"/>
Run Code Online (Sandbox Code Playgroud)

在ViewModel中:

public void OnSliderMouseUp(Slider slider)
{
    int blah = 9;
}
Run Code Online (Sandbox Code Playgroud)

OnSliderMouseUp()永远不会被称为.你能告诉我我错过了什么吗?

wpf slider caliburn.micro

3
推荐指数
1
解决办法
2452
查看次数