急!!!! ASP.NET 控件获取不到值 求各位大神帮忙 我要拿去面试的作品
后台界面:using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class Manage_IndroduceManage : System.Web.UI.Page
{
BLL.BLLSelect SelCon = new BLL.BLLSelect();
BLL.BLLUpdate update = new BLL.BLLUpdate();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlDataReader dr = SelCon.BLLSelectIndroduce();
while (dr.Read())
{
string content = dr["Content"].ToString();
ItmouseEditor1.Text = content;
}
}
}
protected void ItmouseEditor1_Submit(object sender, itmouse.com.cn.ItmouseEditor.SubmitEventArgs e)
{
string pid = Request["ID"].ToString();
string TextContent = e.Text;
bool en = update.BLLUpdateIndroduce(TextContent);
if (en == true)
{
Response.Redirect("IndexManage.aspx?id=" + pid);
}
else
{
Response.Redirect("IndexManage.aspx?id=" + pid);
}
}
}
前台界面:
<%@ Page Title="" Language="C#" MasterPageFile="~/Manage/MasterPage.master" AutoEventWireup="true" CodeFile="IndroduceManage.aspx.cs" Inherits="Manage_IndroduceManage" %>
<%@ Register assembly="Refresh.Web.FreeTextBox" namespace="Refresh.Web" tagprefix="FTB" %>
<%@ Register assembly="ItmouseEditor" namespace="itmouse.com.cn" tagprefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<cc1:ItmouseEditor ID="ItmouseEditor1" runat="server"
onsubmit="ItmouseEditor1_Submit" >
</cc1:ItmouseEditor>
</asp:Content>
BLL层BLLUpdate:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace BLL
{
public class BLLUpdate
{
DAL.DALUpdate dal = new DAL.DALUpdate();
public bool BLLUpdateIndroduce(string Content)
{
return dal.UpdateIndroduce(Content);
}
}
}
DAL层DALUpdate:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace DAL
{
public class DALUpdate
{
DBbase db = new DBbase();
public bool UpdateIndroduce(string Content)
{
return db.ReturnExecuteNonQuery(Content);
}
}
}
DAL层DBbase.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace DAL
{
class DBbase
{
#region 实例化连接对象con
/// <summary>
/// 实例化连接对象con
/// </summary>
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConSql"]);
#endregion
#region 检测连接是否打开
/// <summary>
/// 检测连接的方法CheckConnection(),若连接是关闭的则打开SqlConnection连接
/// </summary>
public void CheckConnection()
{
if (this.con.State == ConnectionState.Closed)
{
this.con.Open();
}
}
#endregion
public bool ReturnExecuteNonQuery(string Content)
{
CheckConnection();
try
{
string sqlstr = "update tb_Indroduce set Content='" + Content + "' where ID=3";
SqlCommand com = new SqlCommand(sqlstr, con);
int i = com.ExecuteNonQuery();
if (i > 0)
{
return true;
}
else
{
return false;
}
}
finally
{
con.Close();
}
}
附录 ItmouseEditor控件属事及事件:
属性:
EditMode:编辑器模式,默认为Design (Design-编辑模式 Html-代码模式)
EditingAreaWidth:编辑区宽度,默认为600px
EditingAreaHeight:编辑区高度,默认为300px
Text:编辑内容
DisableFileUpload:是否关闭文件上传功能,默认为false(true-关闭文件上传功能 false-不关闭文件上传功能)
ImageFileType:图片文件上传类型列表,格式见属性说明
FileType:普通文件上传类型列表,格式见属性说明
ImageFileSavePath:图片文件上传目录,格式见属性说明
FileSavePath:普通文件上传目录,格式见属性说明
EditorStyle:编辑器外观样式选择,目前只实现了officeXP样式
事件:
Submit:点击控件中的保存按钮时的触发的事件
事件方法中的e中可以取到控件编辑的内容
下面是问题
上面的Page_Load传值上面的都好使
但是运行下面的Submit时 加上 if (!IsPostBack){}得到的ItmouseEditor.Text就是空
不加上if (!IsPostBack){}得到的是原值
哪位大神能帮帮我啊 我真的很急 后天就要去面试了。。。 --------------------编程问答-------------------- 这个是自定义控件里面的方法? --------------------编程问答-------------------- 嗯 是的 一个叫ItmouseEditor 1.0版本的文本编辑器 --------------------编程问答-------------------- 用 request.Params 试试 --------------------编程问答-------------------- 我是新手 您能具体的说一下麽 --------------------编程问答-------------------- 擦,页面button事件内肯定是postback的啊,否则谁会调用它 --------------------编程问答--------------------
我是新手 您能具体的说一下麽 --------------------编程问答--------------------
您具体是指这样?
protected void ItmouseEditor1_Submit(object sender, itmouse.com.cn.ItmouseEditor.SubmitEventArgs e)
{
if (IsPostBack)
{
string pid = Request["ID"].ToString();
string TextContent = Request.Params["TextValue"];
//string TextContent = e.Text;
bool en = update.BLLUpdateIndroduce(TextContent);
if (en == true)
{
Response.Redirect("IndexManage.aspx?id=" + pid);
}
else
{
Response.Redirect("IndexManage.aspx?id=" + pid);
}
}
}
结果还是修改的空值
您要是指的是这样protected void ItmouseEditor1_Submit(object sender, itmouse.com.cn.ItmouseEditor.SubmitEventArgs e)
{
if (!IsPostBack)
{
string pid = Request["ID"].ToString();
string TextContent = Request.Params["TextValue"];
//string TextContent = e.Text;
bool en = update.BLLUpdateIndroduce(TextContent);
if (en == true)
{
Response.Redirect("IndexManage.aspx?id=" + pid);
}
else
{
Response.Redirect("IndexManage.aspx?id=" + pid);
}
}
}
不跳转页面
您能具体点指出来么 我是新手 --------------------编程问答-------------------- 跪求 解答啊 长时间在线 急!!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 一,建议楼主断点调试,看看就明白了
儿,button事件肯定是页面postback才会发生,所以你
if (!IsPostBack) 写在button里永远是false,不会执行 --------------------编程问答-------------------- 来,我帮你远程调试一下 --------------------编程问答--------------------
好啊 加我QQ737171500 --------------------编程问答-------------------- 你的 SqlDataReader 都没有 关闭。
你那代码写的太烂了,
第一次见在 page_load里写 读取 SqlDataReader 的代码。 --------------------编程问答-------------------- string pid = Request["ID"].ToString();
不能用这个,
你要用这个 Request.QareyString[]
自己去区别GET,POST 的区别。 --------------------编程问答--------------------
我刚学没多久 也不会什么规范 您就先别纠结这个了 帮我看看哪里出问题了 我急用啊 --------------------编程问答--------------------
哦 我去试试 谢谢 --------------------编程问答--------------------
没感觉有啥区别,我一直直接request["xx"] --------------------编程问答-------------------- 你的 if (!IsPostBack) 是加在哪里的时候取不到值? 不管是页面初始化加载还是submit的时候加载 都是先执行Page_Load,只是在Page_Load里判断,是不是postback.
你不是想在submit事件里加上 if (!IsPostBack)吧,这里是肯定不需要的. 你要取文本编辑器ItmouseEditor里的值用ItmouseEditor.Text可以取到吧. --------------------编程问答--------------------
当然是加在Page_Load里 会取到数据的值 但是只要触发了ItmouseEditor1_Submit点击事件 传回的
ItmouseEditor.text就是空值
要是Page_Load里面不加if(!IsPostBack) 触发了ItmouseEditor1_Submit点击事件 传回的
ItmouseEditor.text就是修改之前 的 --------------------编程问答-------------------- 你的意思是:在 Page_Load 里给 ItmouseEditor 赋值(进行修改之类的操作)然后以 ItmouseEditor 的新内容修改数据库记录,根据返回值实现页面跳转。
但是这里你用了 MasterPage ,内容页跟母版页之间存在交互行为,在 (!IsPostBack)里赋值了,但当你执行 ItmouseEditor1_Submit 时页面已经 PostBack 而且不执行(!IsPostBack)里的内容,也就是说 ItmouseEditor 中的内容被清空了。。。
你可以试一下用 ViewState --------------------编程问答-------------------- 真不知道你到底要做什么,
2个页面传值有这么费劲吗
楼主最好把你的问题描述清楚。到目前为止,你的问题已经被说乱了。 --------------------编程问答--------------------
她是要在一个页面里做操作不是2个页面吗,一个页面你什么url传参数啊。真无语了
1.js __dopostback事件或是回调。
2.直接ViewState[""](当前页面作用域) 或是 Session[""](一个会话都可以读到) --------------------编程问答-------------------- 现在的问题跟页面传值无关,是楼主没弄清PostBcak的问题 --------------------编程问答-------------------- postback就是页面首次加载时运行的代码。
话说你最起码得有个数据访问层啊。 --------------------编程问答--------------------
把楼主说蒙了吧 --------------------编程问答-------------------- 打断点调试嘛~ --------------------编程问答-------------------- 来看看学习一下了。。。。。。。
补充:.NET技术 , ASP.NET