以下代码已简化.
用户控件ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="BaseFormControl.ascx.cs"
Inherits="SOPR.CustomForms.BaseFormControl" %>
<fieldset class="fset1">
</fieldset>
Run Code Online (Sandbox Code Playgroud)
这是我的用户控件代码隐藏:
public partial class BaseFormControl : System.Web.UI.UserControl
{
[TemplateContainer(typeof(ContentContainer))]
[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate Content { get; set; }
void Page_Init()
{
if (Content != null)
{
ContentContainer cc = new ContentContainer();
Content.InstantiateIn(cc);
contentHolder.Controls.Add(cc);
}
}
Run Code Online (Sandbox Code Playgroud)
我在视图中的用法:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AddOperator.aspx.cs"
Inherits="SOPR.Cadastro.AddOperator" MasterPageFile="~/MasterPage.Master" %>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" ID="maincont" runat="server" EnableViewState="true">
<uc:BaseFormControl ID="BaseFormControl1" runat="server">
<Content>
<asp:TextBox runat="server" CssClass="keytbcss" MaxLength="4" ID="keytb"
NewLine="false" />
</Content>
</uc:BaseFormControl>
Run Code Online (Sandbox Code Playgroud)
我试图访问代码隐藏的"keytb"控件,但它就像它不存在(比如使用不存在的变量).有任何想法吗?
提前致谢.
解决方案--------------------------
我发现了一个非常好的解决方案,只需将[TemplateInstance(TemplateInstance.Single)]添加到ITemplate属性中即可.用户控制,一切都被看到.我现在可以使用就像它是一个普通的页面控件.
public partial class …Run Code Online (Sandbox Code Playgroud) 环境: NHibernate 4.0.0.4000; NHibernate.Caches.SysCache 4.0.0.4000; Web MVC / API 4.5.1;FluentNHibernate 1.4.0.0; VS2013;
我正在尝试在nhibernate上缓存一个SQL查询(无需缓存即可完美运行),如下所示:
return Session.CreateSQLQuery(sql)
.AddScalar("Id", NHibernateUtil.Int32)
.AddScalar("Summary", NHibernateUtil.String)
.SetResultTransformer(Transformers.AliasToBean<ProductDto>())
.SetCacheable(true)
//.SetCacheRegion("Long") throws same error regardless of this
.List<ProductDto>()
;
Run Code Online (Sandbox Code Playgroud)
但它一直抛出ArgumentNullException,请参阅详细信息:
Value cannot be null.
Parameter name: source
at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source, Func`2 predicate)
at NHibernate.Util.ArrayHelper.CountTrue(Boolean[] array)
at NHibernate.Transform.CacheableResultTransformer.Create
...
Run Code Online (Sandbox Code Playgroud)
我试图使用另一个缓存提供程序,即NHibernate.Caches.RtMemoryCache,但是错误是相同的。
调用之后也不会记录任何休眠信息,因为该错误显然是在其管道的早期出现的。
使用Fluent NHibernate进行缓存配置:
(OracleClientConfiguration.Oracle10.ConnectionString(connStr).AdoNetBatchSize(20000)).Cache(c => c.ProviderClass<SysCacheProvider>().UseSecondLevelCache().UseQueryCache())
Run Code Online (Sandbox Code Playgroud)
关于缓存设置的日志信息(如果我使用区域,自然会发生变化):
INFO 2014-11-03 08:51:33,474 [1 ] NHibernate.Cache.StandardQueryCache - starting query cache at region: NHibernate.Cache.StandardQueryCache
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?还是这个问题缺少信息?
谢谢!
这个问题与我的另一个问题有关:材料按钮 - 样式未正确应用,丑陋到地狱
在模拟器上运行时工作正常。API 为 21,Android Studio v3.2.1。有没有办法解决这个问题?
预览:
布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.button.MaterialButton
android:id="@+id/material_button"
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="76dp" app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="108dp"/>
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
摇篮:
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.android.material:material:1.0.0-beta01'
Run Code Online (Sandbox Code Playgroud)
显现:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test.materialbuttontest01">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MaterialComponents.Light.NoActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud) 我正在尝试在VBA(Excel 2003)上计算字符串的哈希,但是当我调用时ComputeHash,它将抛出Invalid argument/procedure call错误。
DLL参考:mscorlib v4.0,System v4.0
MSDN参考:http : //msdn.microsoft.com/zh-cn/library/system.security.cryptography.sha512managed.aspx
Sub Main()
Dim instance As New SHA512Managed
Dim data() As Byte
data = StringToByte("mymsg")
Dim result() As Byte
instance.ComputeHash(data) 'Throws runtime error'
MsgBox (ByteToString(result))
End Sub
Function StringToByte(ByVal s)
Dim b() As Byte
b = s 'Assign Unicode string to bytes.'
StringToByte = b
End Function
Function ByteToString(ByVal dBytes)
Dim strText As String
strText = dBytes
ByteToString = strText
End Function
Run Code Online (Sandbox Code Playgroud) 语言:C#,系统:Windows7,Excel 2007
我想从一些数据创建.DBF,我想从Excel 2007打开它.它可以是dBase或foxpro.我目前正在使用FoxPro9(顺便说一句,这段代码来自互联网):
OleDbConnection con = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=C:\\Temp\\;");
con.Open();
OleDbCommand cmd1 = new OleDbCommand("Create Table TestDBF (Field1 I, Field2 C(10))", con);
OleDbCommand cmd2 = new OleDbCommand("Insert Into TestDBF Values (1, 'Hello')", con);
OleDbCommand cmd3 = new OleDbCommand("Insert Into TestDBF Values (2, 'World')", con);
cmd1.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
cmd3.ExecuteNonQuery();
con.Close();
Run Code Online (Sandbox Code Playgroud)
这会生成我可以在DbfViewer中打开的文件,但是,我无法在Excel 2007中打开它,也不能在我拥有的某些应用程序中使用.我可以使用DbfViwer手动将FoxPro .dbf转换为dbaseIII dbf,但我希望它是自动的.
有任何想法吗?
提前致谢
我正在使用C#,MVC3而且VS2010
我注意到即使valdiation结果为false,控制器方法仍然会被执行.这使得验证在服务器端无用.除非有办法获得结果.
----编辑-----
这就是我如何使用它.它做得好吗?至少显示验证消息,文本框变为红色.
模型:
public class CategoriaModel
{
[Required(ErrorMessage="Nome é obrigatório!")]
[StringLength(10, ErrorMessage = "First Name max length is 10")]
public string Nome { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
视图:
@Html.ValidationSummary(true)
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>
@using (Html.BeginForm("Salvar", "Test", FormMethod.Post))
{
@Html.LabelFor(m => m.Nome)
@Html.EditorFor(m => m.Nome)
@Html.ValidationMessageFor(m=>m.Nome)
<input type="submit" value="Salvar" />
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Salvar(CategoriaModel catModel)
{
ViewBag.StatusMessage = "Ok!";
return View("Index");
}
Run Code Online (Sandbox Code Playgroud) 我有一个日期的文本字段,虽然有时它也有时间组件.例如:
"23/1/1999"
"25/2/2003 05:18:00"
Run Code Online (Sandbox Code Playgroud)
现在,我只想查询它们并仅按日期组件排序.我的尝试
TO_DATE(
TO_CHAR(
TO_DATE(mytextfield , 'DD-MM-YYYY HH:MI:SS')
,'DD-MM-YYYY')
,'MON-YYYY')
Run Code Online (Sandbox Code Playgroud)
以上在TO_DATE外部失败(ORA-01843无效月份.)
TO_CHAR(
TO_DATE(mytextfield , 'DD-MM-YYYY HH:MI:SS')
,'DD-MM-YYYY')
Run Code Online (Sandbox Code Playgroud)
上面的工作,但我留下了一个字符串,而不是一个日期.
--------解决方案使用接受的答案
只是用
EXTRACT(MONTH FROM TO_DATE(timetable.string_time) , 'DD-MM-YYYY HH24:MI:SS'))
EXTRACT(YEAR FROM TO_DATE(timetable.string_time) , 'DD-MM-YYYY HH24:MI:SS'))
Run Code Online (Sandbox Code Playgroud)
如答案所述,您可以在ORDER BY和SELECT中交换使用它的顺序.
本月将需要一些数字格式,以及一些concats,但这非常有效.