2011-08-11 58 views
1

SendMessage.aspx跨客户端和服务器

<asp:DropDownList runat="server" ID="listMessagereceiver"></asp:DropDownList> 
<textarea id="txtBodyMessage" name="txtBodyMessage"> </textarea> 
<asp:Button OnClick="btnSendMessage_Click" runat="server" ID="btnSendMessage" /> 

脚本

CKEDITOR.replace('txtBodyMessage',{language : 'fa',on :{}}); 

代码

protected void Page_Load(object sender, EventArgs e) 
{ 
    listMessagereceiver.DataSource=list; 
    listMessagereceiver.DataBind(); 
} 
protected void btnSendMessage_Click(object sender, EventArgs e) 
{ 
//how can access to `txtBodyMessage` 
} 

txtBodyMessage是客户端如何访问呢?

这是发送消息的好方法吗?

有没有更好的方法?

回答

-1

假设你的脚本是一个ASPX页面上,你可以在文本区域更改为:

<asp:TextBox id="txtBodyMessage" name="txtBodyMessage" MultiLine="True" runat="server"> </asp:TextBox> 

和你的JavaScript来:

CKEDITOR.replace('<%=txtBodyMessage.ClientID %>',{language : 'fa',on :{}}); 

,然后在你的事件处理程序:

protected void btnSendMessage_Click(object sender, EventArgs e) 
{ 
//access `txtBodyMessage` with this.txtBodyMessage 
} 
+0

错误:未捕获的异常:[CKEDITOR.editor.replace]找不到id或名称为“<%= txtBodyMessage.ID%>”的元素。 – ashkufaraz

+0

是该行:CKEDITOR.replace('<%= txtBodyMessage.ID%>',{language:'fa',on:{}});在aspx页面上?就像我上面所说的那样,<%= txtBodyMessage.ID%>将只显示aspx页面上的文本框的ID,而不是如果你在正常的.js文件上显示该文本框的 –

+0

file.js和aspx – ashkufaraz

2

如果你只是想要发布的价值,没有别的,那么request.form["txtBodyMessage"]将工作。

另外,<textarea id="txtBodyMessage" name="txtBodyMessage" runat="server"> </textarea>会给你更多的控制作为服务器的htmlcontrol。这是一个中途的房子。

最后还是让它成为一个完整的Web控件,因为上面提到了pj,但是使用clientid来找出它在页面中调用的内容,而不是id。 ID是服务器端控件名称。