C# 需要有关格式异常的帮助::输入字符串的格式不正确
我的主类中的属性C# 需要有关格式异常的帮助::输入字符串的格式不正确,c#,asp.net,C#,Asp.net,我的主类中的属性 public Int64 DetailID { get { return bintDetailID; } set { bintDetailID = value; } } 我的班级 mainClass obj=new mainClass(); obj.DetailID = int.Parse(e.CommandArgument.ToString()); aspx页 <asp:Button
public Int64 DetailID
{
get { return bintDetailID; }
set { bintDetailID = value; }
}
我的班级
mainClass obj=new mainClass();
obj.DetailID = int.Parse(e.CommandArgument.ToString());
aspx页
<asp:Button ID="btnEdit" Text="Edit" CommandArgument='<%#Eval("DetailID") %>'
CausesValidation="false" CommandName="Edit" Visible="false" runat="server" OnCommand="btnEdit_Click"/>
怎么了?plz help..thnx假设您的按钮对象不在数据绑定控件(如网格/中继器)内, 如果您试图使用DetailID属性绑定按钮,请检查以下内容:-
testPage.aspx
中,则testPage.aspx
的codebehind类,即class testPage
应具有名为DetailID的Int64
类型的属性。
例如:Int64-DetailID-get;设置代码>
this.DetailID=mainClassObject.DetailID代码>其中此
=页面的实例
page\u load
方法中,还必须执行page.DataBind()
。这是因为像按钮这样的非数据绑定控件没有自己的DataBind()方法尝试使用完全限定的名称,即System.Int64,看看是否有效 假设按钮对象不在数据绑定控件(如网格/中继器)内, 如果您试图使用DetailID属性绑定按钮,请检查以下内容:-
testPage.aspx
中,则testPage.aspx
的codebehind类,即class testPage
应具有名为DetailID的Int64
类型的属性。
例如:Int64-DetailID-get;设置代码>
this.DetailID=mainClassObject.DetailID代码>其中此
=页面的实例
page\u load
方法中,还必须执行page.DataBind()
。这是因为像按钮这样的非数据绑定控件没有自己的DataBind()方法尝试使用完全限定的名称,即System.Int64,看看是否有效 Int.parse用于转换为32位整数值
public Int64 DetailID
{
get { return bintDetailID; }
set { bintDetailID = value; }
}
它是64位的
try Int64.parse(e.CommandArgument.ToString());
如果您得到的是空值检查
(!string.IsNullOrEmpty(e.CommandArgument.ToString())
Int64.parse(e.CommandArgument.ToString());
希望它能起作用
谢谢Int.parse用于转换为32位整数值。根据您的问题
public Int64 DetailID
{
get { return bintDetailID; }
set { bintDetailID = value; }
}
它是64位的
try Int64.parse(e.CommandArgument.ToString());
如果您得到的是空值检查
(!string.IsNullOrEmpty(e.CommandArgument.ToString())
Int64.parse(e.CommandArgument.ToString());
希望它能起作用
谢谢为了确保这一点,请尝试从代码隐藏中设置
CommandArgument
的值
btnEdit.CommandArgument = DetailID.ToString();
不过,我有一个疑问,就是你是否应该在.aspx文件中写入
CommandArgument='<%=Eval("DetailID") %>'
CommandArgument=''
而不是
CommandArgument='<%#Eval("DetailID") %>'
CommandArgument=''
(注意
=
vs#
)为了确保,请尝试从后面的代码中设置命令参数的值
btnEdit.CommandArgument = DetailID.ToString();
不过,我有一个疑问,就是你是否应该在.aspx文件中写入
CommandArgument='<%=Eval("DetailID") %>'
CommandArgument=''
而不是
CommandArgument='<%#Eval("DetailID") %>'
CommandArgument=''
(请注意=
vs#
)当您获取e.commandargument时,它是什么。当我调试时..当我给出像obj.DetailID=567这样的硬编码值时,它显示为空字符串“”;它运行正常。你不能将空字符串转换为int。为什么它返回空字符串?我不明白。下面是正确的吗??CommandArgument=''当您得到它时,e.CommandArgument是什么。当我给出像obj.DetailID=567这样的硬编码值时,它会显示为一个空字符串';它运行正常。你不能将空字符串转换为int。为什么它返回空字符串?我不明白。下面是正确的吗??CommandArgument=''我已经试过了..它说Int64在当前上下文中不存在(!!???@Happy Soul-如果您的按钮不在数据绑定控件(如网格)内,那么您可以检查我的更新答案,看看它是否有效!!好的,我已经像你说的那样实现了。现在,当我在代码中包含“Page.DataBind();”行时,我的aspx页面的母版页正在抛出“Object reference null exception”。。当我在PageLoad方法中注释掉这一行时,不会引发此异常,但e.commandArguments再次变成空字符串,如“如何使用thsi非数据绑定控件?”?请帮忙。。thnx@HappySoul-Page.DataBind()的作用是将页面上的所有数据源绑定到它们各自的控件上。从中获取对象引用错误的行的代码是什么?在执行page.DataBind()之前,是否可以确定页面上的所有其他数据源是否都填充了值。如果未填充任何数据源,则可能会出现对象引用错误。为了测试这部分是否正常工作,我建议您首先注释掉页面上的所有其他数据源/数据绑定控件…我已经尝试过了..它说Int64在当前上下文中不存在(!!??)@Happy Soul-如果您的按钮不在数据绑定控件(如网格)内,那么您可以检查我的更新答案,看看它是否有效!!好的,我已经像你说的那样实现了。现在,当我在代码中包含“Page.DataBind();”行时,我的aspx页面的母版页正在抛出“Object reference null exception”。。当我在PageLoad方法中注释掉这一行时,不会引发此异常,但e.commandArguments再次变成空字符串,如“如何使用thsi非数据绑定控件?”?请帮忙。。thnx@Happy灵魂-Page.DataBind()的作用是