小编cod*_*biz的帖子

如何使WinForms UserControl填充其容器的大小

我正在尝试创建一个多布局主屏幕应用程序.我在顶部有一些链接到应用程序主要部分的按钮(例如模型中每个实体的管理窗口)

单击任何这些按钮将在Panel中显示关联的UserControl.Panel持有UserControls,而UserControls又拥有UI.

WinForms UserControl没有AnchorDock属性.

我试过设置UserControl的属性

AutoSize=True
Run Code Online (Sandbox Code Playgroud)

private void ManageUsersControl_Load(object sender, EventArgs e)
{
        this.Width = this.Parent.Width;
        this.Height = this.Parent.Height;
}
Run Code Online (Sandbox Code Playgroud)

但这些都行不通.
注意:我在运行时动态加载此控件

.net c# mdi multipage winforms

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

Asp.Net Webforms与Asp.Net WebSite(Razor)和Asp.Net MVC

我认为微软必须有理由用RAZOR语法增强ASP.Net.

在visual studio 的Create New Website Project对话框中,还有另一个创建ASP.Net(Razor)的选项.我第一次遇到Razor一词是因为当我读一本关于Asp.Net MVC的书时,我不知道它存在于ASP.Net

在此输入图像描述

我知道Razor的语法是什么,在MVC 3中引入.在问这个问题之前,我决定为ASP.Net(Razor)创建一个测试项目,看看它与普通的ASP.Net webforms和ASP.Net有什么不同. MVC.我发现没有像我们在MVC中那样的模型/视图/控制器文件夹.

我发现Master页面的指定方式不同,Master页面更清晰,没有更多 <asp:ContentPlaceHolder />

但我的问题是:

  • 我注意到它使用了.cshtml,没有更多的代码隐藏吗?
  • ASP.Net(Razor)和ASP.Net MVC之间的异同
  • 它可以扩展到像ASP.Net MVC这样的功能,例如添加Controller?View/Model,Custom Routing我猜?
  • 为什么我们有ASP.Net MVC时会存在这种情况?难道这不会让人不愿意转向ASP.Net MVC吗?
  • 为什么你会选择ASP.Net + Razor而不是ASP.Net MVC?

更新: 特别是ASP.NET Web页面旨在使已经了解HTML的人们可以轻松地向其页面添加服务器处理.对于学生,业余爱好者,一般不熟悉编程的人来说,这是一个不错的选择.对于具有非ASP.NET Web技术经验的开发人员来说,它也是一个不错的选择

更新 ASP.NET网页 ASP.NET Web Pages面向那些想要一个简单的Web开发故事的开发人员,这与PHP一致.在Web页面模型中,您可以创建HTML页面,然后将基于服务器的代码添加到页面中,以便动态控制标记的呈现方式.Web Pages专门设计为轻量级框架,对于了解HTML但可能没有广泛编程经验的人来说,它是进入ASP.NET的最简单的入口点 - 例如,学生或业余爱好者.对于了解PHP或类似框架的Web开发人员来说,这也是开始使用ASP.NET的好方法.

Asp.Net网页

拜托,我需要你的技术意见.谢谢.

.net asp.net asp.net-mvc razor

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

将DBNull.Value和Empty文本框值传递给数据库

我的页面上有一些文本框可以为空,因为它们是可选的,我有这个DAL代码

parameters.Add(new SqlParameter("@FirstName", FirstName));
parameters.Add(new SqlParameter("@LastName", LastName));
parameters.Add(new SqlParameter("@DisplayName", DisplayName));
parameters.Add(new SqlParameter("@BirthDate", BirthDate));
parameters.Add(new SqlParameter("@Gender", Gender));
Run Code Online (Sandbox Code Playgroud)

任何这些字段都可以为空.问题是当我们收到空的时候Procedure XXX requires @FirstName which was not supplied

然后我将代码更改为

parameters.Add(new SqlParameter("@FirstName", String.IsNullOrEmpty(FirstName) ? DBNull.Value : (object)FirstName));
parameters.Add(new SqlParameter("@LastName", String.IsNullOrEmpty(LastName) ? DBNull.Value : (object) LastName));
parameters.Add(new SqlParameter("@DisplayName", String.IsNullOrEmpty(DisplayName) ? DBNull.Value : (object) DisplayName));
parameters.Add(new SqlParameter("@BirthDate", BirthDate.HasValue ? (object)BirthDate.Value : DBNull.Value));
parameters.Add(new SqlParameter("@Gender", String.IsNullOrEmpty(Gender) ? DBNull.Value : (object) Gender));
Run Code Online (Sandbox Code Playgroud)

但是这对我来说看起来很麻烦,特别是object因为三元语句要求两个值都是相同的类型.

为什么NULL数据库中没有处理空字符串或空字符串?如果我必须将其转换DBNull.Value为更清洁的方式吗?将值保存为数据库中的空字符串可能有所帮助,但NULL在数据库中查询也会变得混乱

请就常见做法或与此有关的事情提出建议.

.net c# sql-server ado.net dbnull

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

如何处理默认日期时间

我有DAL,我将数据库空值转换为它们在C#中的等效表示.例如:

NULL for Numeric = 0
NULL for String = String.Empty
NULL for DateTime = "1/1/0001" (i.e. DateTime.MinValue)
Run Code Online (Sandbox Code Playgroud)

对于日期而言,问题在于表示层,尤其是在GridViews中.您无法1/1/01向用户显示.

我以前做的是检查if myDate.Year=1 or myDate.Year < AcceptedDate并显示空字符串,但与其他类型不同,似乎是额外的努力

请接受更好的方法.谢谢.

c# database asp.net data-formats

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

MVC DateTime验证失败

我发现了许多simulair问题,但不是一个有效的干净解决方案.我看到很多自定义代码可以让它工作,但为什么会这样?这应该从一开始就不起作用吗?

我认为奇怪的是,在IE9中它可以工作,但在Firefox和Chrome中它失败了.每当我在Firefox或Chrome中尝试时,我都会收到消息"字段生日必须是日期".

当我在新的MVC 4 RTM项目中尝试下面的代码时,我无法让它工作.我在所有浏览器中都看到DateTime.Now默认为dd-MM-yyyy(Holland)但我无法在Firefox和Chrome中提交它.

全局标记未在web.config中设置,因此必须使用默认值.我来自荷兰,所以它应该得到我猜的客户文化.

public class RegisterModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    //[DataType(DataType.Date)]
    public DateTime Birthday { get; set; }
}

[AllowAnonymous]
    public ActionResult Register()
    {
        RegisterModel vm = new RegisterModel()
        {
            Birthday = DateTime.Now
        };
        return View(vm);
    }

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            try
            {
                //WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                //WebSecurity.Login(model.UserName, model.Password);
                return …
Run Code Online (Sandbox Code Playgroud)

validation asp.net-mvc model-validation asp.net-mvc-3 asp.net-mvc-4

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

防止MySQL将隐式默认值插入非空列

我试图使用多个插入(在一个语句中),我有这个表结构

CREATE TABLE Scores
(
  studentID varchar(50) not null,
  score int
)
ENGINE = InnoDB
Run Code Online (Sandbox Code Playgroud)

我的查询:

INSERT INTO Scores Values
('Barry', 45),
(NULL, 41),
('Jones', 53)
Run Code Online (Sandbox Code Playgroud)

由于[StudentID]列不接受NULL,因此该语句(我预期)会失败.问题是MySQL将空字符串('')插入第2行......并允许其余部分继续.

mysql sql database

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

<#=#>的含义是什么?

阅读代码生成和T4文本模板,我发现这个语法<#= DateTime.Now#>

<html><body>
 The date and time now is: <#= DateTime.Now #>
</body></html>
Run Code Online (Sandbox Code Playgroud)

它与<%= DateTime.Now %>or 有什么不同<%# DateTime.Now %>

谷歌搜索没有显示

.net asp.net syntax t4 expression

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

如果列表太大,Android双扩展列表视图会隐藏项目

我创建了一个树作为双重可扩展列表视图,其中一个项目比其他项目有更多的孩子(15),并没有显示他的所有孩子.

 _ ______
+|_______| 
    _______
  +|_______|
         _______
        |_______|
         _______
        |_______|
           ...
           ...
         _______
        |_______|   // 11-th item
         _______    // 12-th item can be seen a little and it-s clickable 
    _______
  +|_______|
    _______
  +|_______|
   ...
   ...
    _______
  +|_______|
Run Code Online (Sandbox Code Playgroud)

在第12个项目之后,列表被删除.我没有对列表的大小施加任何约束.知道为什么会这样吗?谢谢!

编辑 这是第一个可扩展列表的代码.

<ExpandableListView android:layout_width="fill_parent" android:id="@+id/ParentLevel" 
               android:groupIndicator="@null" android:choiceMode="singleChoice" 
               android:layout_height="fill_parent" 
               android:layout_above="@id/button_layout" 
               android:paddingRight="5dp">
Run Code Online (Sandbox Code Playgroud)

另一个子列表添加在适配器getView()方法中.

代码示例

//MainActivity.java
public class MainActivity extends Activity implements OnChildClickListener {

ExpandableListView elv;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // QUI SOTTO
    Tree root = new Tree("root", 123);

    for (int i …
Run Code Online (Sandbox Code Playgroud)

android expandablelistview

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

UpdateTnel中的AddThis控件 - 确保在异步回发后正确呈现它们

首先,我可以提前为我的帖子质量道歉,因为这是我第一次在这里发布.我过去在这个网站上找到了一些非常有用的答案,因此我发现自己有能力回馈我以为我会试一试.

在我的头撞墙一段时间,并在网上找到很少的可靠信息后,我终于找到了一个对我有用的问题的答案并回答了几个问题,所以我想我会分享我的发现.

场景:

  • .Net用户控件,使用唯一指定的url和title属性呈现addthis工具箱.
  • 一个UpdatePanel,包含一个显示多行的转发器,每行包含一个工具箱用户控件的实例.
  • 每次显示更多结果时,刷新UpdatePanel的"显示更多结果"按钮.

问题:

首次显示页面时,一切都很好.所有工具箱都能正确显示并按预期工作.但是,按下按钮并刷新UpdatePanel时,工具箱会消失.

方案:

首先,我很快从其他人的问题和答案中确定我需要使用PageRequestManager将EndRequestHandler添加到我的页面,该PageRequestManager将处理异步回发请求并触发一些javascript来呈现我的工具箱.

接下来我需要弄清楚这个javascript应该是什么.

我在网上找到了许多针对这个问题的解决方案,大多数使用window.addthis = null并使用jquery getScript()来重新运行addthis javascript,但这些都没有解决问题.我一直回到AddThis网站上的文档,该网站声明你应该使用addthis.toolbox()来使用javascript渲染你的工具箱,这似乎对我不起作用.

然后我有一个灯泡时刻.似乎addthis.toolbox()函数忽略了addthis:url和addthis:我在工具箱div中设置的title属性,我意识到我需要通过在共享中定义它们将这些属性传递给addthis.toolbox()配置对象.从那以后,事情变得容易多了.

最终解决方案分为3部分.

首先是在用户控件中定义的tollbox DIV,它具有唯一的ID并包含addthis:url和addthis:title属性:

<div id="toolBoxWrapper" class="toolBoxWrapper" runat="server">
    <div id='<%="toolBox_" + ControlId%>' class="addthis_toolbox"  addthis:url='<%=AssociatedUrl%>' addthis:title='<%=AssociatedName%>' >
        <a class="addthis_button_email"></a>
        <a class="addthis_button_facebook"></a>
        <a class="addthis_button_twitter"></a>
        <a class="addthis_button_print"></a>
        <a class="addthis_button_compact"></a>
        <a class="addthis_counter addthis_bubble_style"></a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

接下来,我在控件中创建了一个PreRender处理程序,以创建包含特定于控件的addthis共享配置对象的定义的javascript.这不能只包含在ascx页面中,因为它不起作用.必须使用服务器代码中的RegisterStartupScript创建它:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        // This code creates a control specific addthis_share config object so that
        // the toolbox can be re-created after an ajax async …
Run Code Online (Sandbox Code Playgroud)

.net c# updatepanel addthis

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

从我熟悉的不同SELECT语句

为什么这些语句有效[使用SQL2008 R2]

Select* FROM TableName   --UPDATE: this is not allowed in Oracle (10g)
Run Code Online (Sandbox Code Playgroud)

Select *From TableName  --UPDATE: this is allowed in Oracle (10g)
Run Code Online (Sandbox Code Playgroud)

现在这个

Select*From TableName   --UPDATE: this is not allowed in Oracle (10g)
Run Code Online (Sandbox Code Playgroud)

更新: SQL Server中允许所有三个

我这样知道 Select * From TableName

sql-server sql-server-2008-r2

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