formview

jiayun1 2010-04-06 01:17:44
这是formview中 的按钮,也绑定了数据源sqldatasource
    

<asp:Button ID="btnemail" runat="server" Text="Submit Without An Email" />

<asp:Button ID="Button1" runat="server" CausesValidation="True" CommandName="Insert"
Text="Submit" />

button1已经实现了我要的功能。SqlDataSource1_Inserted我提交了数据库,并发出了邮件。
现在想btnemail按钮也可以直接将数据提交数据库,但是不发邮件了。


我只想到再写bunemail_click事件,再写方法把数据入库。
有没有也和button1一样的简单的方法。
...全文
247 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
criedshy 2010-04-06
  • 打赏
  • 举报
回复
int NewID = Convert.ToInt32(e.Command.Parameters["@NewID"].Value);

你想在哪个事件里调用?有什么用?
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 koukoujiayi 的回复:]
引用 30 楼 jiayun1 的回复:
那还要有这个值呢。 int NewID = Convert.ToInt32(e.Command.Parameters["@NewID"].Value);
不就是id吗??
你想在哪个事件中获取??
我给你代码!!
[/Quote]
32楼都已经说了。
criedshy 2010-04-06
  • 打赏
  • 举报
回复
FormViewCommandEventArgs e

SqlDataSourceStatusEventArgs e

这两个是不同的,你不能用第二个e在FormView1_ItemCommand(object sender, FormViewCommandEventArgs e)里用
koukoujiayi 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 jiayun1 的回复:]
那还要有这个值呢。 int NewID = Convert.ToInt32(e.Command.Parameters["@NewID"].Value);[/Quote]
不就是id吗??
你想在哪个事件中获取??
我给你代码!!
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 criedshy 的回复:]
int NewID = Convert.ToInt32(e.Command.Parameters["@NewID"].Value);
这个得不到值了。

之前可以得到值?
[/Quote]
恩。(object sender, SqlDataSourceStatusEventArgs e)
(object sender, FormViewCommandEventArgs e)

水区我发帖子了。你去下。
criedshy 2010-04-06
  • 打赏
  • 举报
回复
int NewID = Convert.ToInt32(e.Command.Parameters["@NewID"].Value);
这个得不到值了。

之前可以得到值?
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 sxy445566 的回复:]
引用 22 楼 jiayun1 的回复:
20楼果然厉害。&amp;&amp; Thank you very much.


那啥,过奖了。。
我从看到你这问题研究一下午了,话说我刚毕业来着。
以前从来没用过SQLDATASOURCE的。。(自恋ING。。)
[/Quote]

有前途哈哈哈,等姐辞职了,推荐你来啊。先好好学外语。
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 criedshy 的回复:]
跟我说的不是一个意思吗?

要不你就定义一个标志 ,在Button1和btnemail改变状态,满足条件的才调用SendMail这个方法。
[/Quote]
问题是我卡在这个条件上了。所以转了一圈没转出来。
[Quote=引用 24 楼 koukoujiayi 的回复:]
我想在一个事件中就可以搞定!!
[/Quote]
那还要有这个值呢。 int NewID = Convert.ToInt32(e.Command.Parameters["@NewID"].Value);
criedshy 2010-04-06
  • 打赏
  • 举报
回复
跟我说的不是一个意思吗?

要不你就定义一个标志 ,在Button1和btnemail改变状态,满足条件的才调用SendMail这个方法。
sxy445566 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 jiayun1 的回复:]
20楼果然厉害。&& Thank you very much.
[/Quote]

那啥,过奖了。。
我从看到你这问题研究一下午了,话说我刚毕业来着。
以前从来没用过SQLDATASOURCE的。。(自恋ING。。)
koukoujiayi 2010-04-06
  • 打赏
  • 举报
回复
我想在一个事件中就可以搞定!!
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 koukoujiayi 的回复:]
总不太清楚楼主的问题所在!!
btnemail加上CommandName="Insert"后,
可以触发ItemCommand,Inserting和Inserted事件,
你的mail代码就可以放在该事件中,
你的mail希望在什么事件下执行,还需要什么数据,请明示!!
[/Quote]
20楼已经详解了。
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
20楼果然厉害。&& Thank you very much.
koukoujiayi 2010-04-06
  • 打赏
  • 举报
回复
总不太清楚楼主的问题所在!!
btnemail加上CommandName="Insert"后,
可以触发ItemCommand,Inserting和Inserted事件,
你的mail代码就可以放在该事件中,
你的mail希望在什么事件下执行,还需要什么数据,请明示!!

sxy445566 2010-04-06
  • 打赏
  • 举报
回复
设置个全局变量 bool isMail=false;
protected void FormView1_ItemCommand(object sender, FormViewCommandEventArgs e)
{
if(e.CommandName.Equals("Insert")||e.CommandArgument.ToString().Equals("1")){
isMail=true;
}
}
然后
protected void CRMMessageDataSource_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
if(isMail){
代码块A;
}
}

这样试下。。
koukoujiayi 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 jiayun1 的回复:]
引用 15 楼 koukoujiayi 的回复:
btnemail加上CommandName="Insert"就会触发和Button1相同的时间哦!!

<asp:Button ID="btnemail" runat="server" Text="Submit Without An Email" CommandName="Insert" />

是相同了。我的email怎么办?
[/Quote]
执行email的代码呗!!
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 sxy445566 的回复:]
楼主~我大概看明白了点。
你把btnemail加上CommandName="Insert",CommandArgument=2. Button1加上CommandArgument=1
然后把
protected void CRMMessageDataSource_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
代……
[/Quote]
方法是好方法。 int NewID = Convert.ToInt32(e.Command.Parameters["@NewID"].Value);
这个得不到值了。
sxy445566 2010-04-06
  • 打赏
  • 举报
回复
楼主~我大概看明白了点。
你把btnemail加上CommandName="Insert",CommandArgument=2. Button1加上CommandArgument=1
然后把
protected void CRMMessageDataSource_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
代码块A;
}

这个事件中的代码块A剪贴出来,放到
protected void FormView1_ItemCommand(object sender, FormViewCommandEventArgs e)
{
if(e.CommandName.Equals("Insert")||e.CommandArgument.ToString().Equals("1")){
代码块A;
}
}

应该就可以了
jiayun1 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 koukoujiayi 的回复:]
btnemail加上CommandName="Insert"就会触发和Button1相同的时间哦!!

<asp:Button ID="btnemail" runat="server" Text="Submit Without An Email" CommandName="Insert" />
[/Quote]
是相同了。我的email怎么办?
koukoujiayi 2010-04-06
  • 打赏
  • 举报
回复
btnemail加上CommandName="Insert"就会触发和Button1相同的时间哦!!

<asp:Button ID="btnemail" runat="server" Text="Submit Without An Email" CommandName="Insert" />
加载更多回复(14)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧