Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с HtmlControls / 25 сообщений из 25, страница 1 из 1
05.05.2005, 10:57
    #33049828
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Всем привет.

У меня есть некая проблема с кнопкой, целый день провозился но никак не могу решить.
На моей странице у меня есть 2 button которые являются HtmlControls, когда одна из них нажимается то в IsPostBack прежде чем что-то делать с получеными из формы данными мне вначале надо проверить какая из двух кнопок была нажата. Я пытаюсь проверять используя
Код: plaintext
if(Page.Request.Form["Delete"]!= null)
Но это почему-то не работает. Оно как будто не видит 2-е мои кнопки и проверка никогда не проходит как надо, фактически она не проходит вообще, очень нужна помощь, сам своей ошибки не вижу, но она явно есть раз не работает как надо.

Сообственно код который не работае :(
В моей aspx странице
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<table class="list_table" id="category_table">
<tr>
   <td>
         <input type="button" value="Save" id="Save" runat="server" class="myforms"> 
        <input type="button" value="Delete" id="Delete" runat="server" class="myforms" name="Delete">
   </td>
</tr>
</table>

Вот что имею в Сode Behind:
Код: plaintext
1.
protected System.Web.UI.HtmlControls.HtmlInputButton Save;
protected System.Web.UI.HtmlControls.HtmlInputButton Delete;

И сообственно вот как пытаюсь определить какая из кнопок была нажата:
Код: plaintext
1.
2.
3.
4.
if(IsPostBack == true)
      if(Page.Request.Form["Delete"]!= null)
      {
               //some stuff that i going to do
       }

Мне именно нужно определить какая из кнопок была нажата именно в IsPostBack, потому-что тама данные что я получаю из формы, иначе данные потеряются. Я пытался для тэста поменять кнопку на checkbox но всеровно он ее не видит через Page.Request.Form.

Заранее благодарен за любоую помощь!
...
Рейтинг: 0 / 0
05.05.2005, 11:50
    #33050026
Sam Andrews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
повесь на каждую кнопку свой обработчик и делай все в них...

с уважением...
...
Рейтинг: 0 / 0
05.05.2005, 11:55
    #33050039
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
А post страницы вообще происходит?
type у кнопок должен быть submit
...
Рейтинг: 0 / 0
05.05.2005, 12:04
    #33050075
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Код: plaintext
Sam Andrews

Обработчики есть, но дело в том что мне именно надо знать какая кнопка нажата именно в IsPostBack, иначе значения других данных теряются :(

Код: plaintext
Kilroy
Я для тэста даже менял контрол кнопки на другой, результат от этого не изменился :(
...
Рейтинг: 0 / 0
05.05.2005, 12:08
    #33050088
gerss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Можно сделать так:
1. Кинуть на страницу Hidden. Сделать его серверным. Значение - "0".
2. При нажатии на кнопку в клиентском скрипте писать в этот Hidden "1" для одной кнопки и "2" для другой.
3. При Postback проверять значение Hidden-а; выполнять нужные действия и сбрасывать обратно в "0", чтобы при любом другом Postback-е, не связанном с кнопками, не выполнять повторно действия кнопок.

Сергей
...
Рейтинг: 0 / 0
05.05.2005, 12:08
    #33050093
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
обрати внимание на атрибут type



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<table class="list_table" id="category_table">
<tr>
   <td>
         <input type="submit" value="Save" id="Save" runat="server" class="myforms"> 
        <input type="submit" value="Delete" id="Delete" runat="server" class="myforms" name="Delete">
   </td>
</tr>
</table>
...
Рейтинг: 0 / 0
05.05.2005, 12:17
    #33050131
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
а не проще использовать WebControl - Button и просто подписаться на его событие клика, тогда не надо будет себе мозги парить?
_______________________________________________________
Господи, сколько ещё не сделано... А сколько ещё предстоит не сделать...!
...
Рейтинг: 0 / 0
05.05.2005, 12:20
    #33050140
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
gerss

Хотелось бы сделать на стороне сервера, ведь должно же быть что-то что позволяет ловить и проверять какие html контролы были переданы.

Kilroy

Я изменил значение type, но это не изменило ситуацию :(
...
Рейтинг: 0 / 0
05.05.2005, 12:25
    #33050159
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Ну а сама форма то есть?
Попробуй проверять

Код: plaintext
1.
2.
3.
4.
if (IsPostBack)
      if (Request["Delete"] != null)
      {
               //some stuff that i going to do
       }
...
Рейтинг: 0 / 0
05.05.2005, 12:32
    #33050186
Sam Andrews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
AntroposОбработчики есть, но дело в том что мне именно надо знать какая кнопка нажата именно в IsPostBack, иначе значения других данных теряются :(

IsPostBack у тебя будет всегда, иначе как у тебя обработчики событий сработают...
пишешь общий метод опроса данных формы, и в каждом из обработчиков его дергаешь, а дальше уже делаешь с этими данными все, что нужно для данного обработчика...

ЗЫ: Артем прав, используй лучше веб-контролы...
...
Рейтинг: 0 / 0
05.05.2005, 12:32
    #33050190
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Лиман Артём

Всеровно должен быть способ проверки что позволяет ловить и проверять какие html контролы были переданы. Это же не логично чтобы контролы были а способа не было.
...
Рейтинг: 0 / 0
05.05.2005, 12:36
    #33050201
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Посмотри еще trace запроса, раздел Form Collection
...
Рейтинг: 0 / 0
05.05.2005, 12:39
    #33050222
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Kilroy

Форма есть, я даже метод post в ней выставил.
А проверка не срабатывает :(
...
Рейтинг: 0 / 0
05.05.2005, 12:41
    #33050229
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Давай, короче весь код сюда. Все должно работать.
...
Рейтинг: 0 / 0
05.05.2005, 12:42
    #33050236
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Kilroy

Обьясни пожалуйста поподробнее про race запроса, раздел Form Collection
...
Рейтинг: 0 / 0
05.05.2005, 12:49
    #33050263
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
в директиву @Page добавляешь trace="True"
...
Рейтинг: 0 / 0
05.05.2005, 12:51
    #33050266
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Вот весь код

aspx:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="categories.ascx.cs" 
Inherits="blogcms.components.categories" 
TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<br>
<table class="list_table" id="category_table">
	<tr>
		<td class="buttom_border"><b>x</b></td>
		<td class="buttom_border"><b>ID</b></td>
		<td class="buttom_border"><b>Name</b></td>
		<td class="buttom_border"><b>Place</b></td>
	</tr>
	<asp:Repeater id="Repeater1" runat="server">
		<HeaderTemplate>
		</HeaderTemplate>
		<ItemTemplate>
			<tr>
				<td>
					<input type="checkbox" id="check" 
runat="server" name="check" 
value='<%# DataBinder.Eval(Container.DataItem, "CategoryId") %>' />
				</td>
				<td>
					<%# DataBinder.Eval(Container.DataItem, "CategoryId") %>
				</td>
				<td>
					<input type="text" id="category_name" runat="server" 
value='<%# DataBinder.Eval(Container.DataItem, "CategoryName") %>' class="myforms" />
				</td>
				<td>
					<input type="text" id="category_place" runat="server" 
value='<%# DataBinder.Eval(Container.DataItem, "CategoryPlace") %>' class="myforms" />
				</td>
			</tr>
		</ItemTemplate>
		<FooterTemplate>
		</FooterTemplate>
	</asp:Repeater>
	<tr>
		<td></td>
		<td></td>
		<td></td>
		<td>
			<input type="sumbit" value="Save" id="Save" 
runat="server" class="myforms">
			<input type="submit" value="Delete" id="Delete" 
runat="server" class="myforms" name="Delete">
		</td>
	</tr>
</table>

Code Behind:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
namespace blogcms.components
{
	using System;
	using System.Data;
	using System.Drawing;
	using System.Web;
	using System.Web.UI.WebControls;
	using System.Web.UI.HtmlControls;
	using System.Configuration;
	using System.Collections;

	public class categories : System.Web.UI.UserControl
	{
		protected System.Web.UI.WebControls.Repeater Repeater1;
		protected System.Web.UI.HtmlControls.HtmlTable category_table;
		protected System.Web.UI.HtmlControls.HtmlInputCheckBox check;
		protected System.Web.UI.HtmlControls.HtmlInputText category_name;
		protected System.Web.UI.HtmlControls.HtmlInputText category_place;
		protected System.Web.UI.HtmlControls.HtmlInputButton Save;
		protected System.Web.UI.HtmlControls.HtmlInputButton Delete;
		private ArrayList values = new ArrayList();
		private System.Data.DataSet DataSetTemp = new DataSet();
		private blogcms.db.dbfunctions NewSql = new blogcms.db.dbfunctions();
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			string StrKey = ConfigurationSettings.AppSettings["getcategories"];
			string CategoryTable = ConfigurationSettings.AppSettings["categorytable"];

			string id2, category_name2, category_place2;

			if(IsPostBack == true)
				if(Page.Request["Delete"] != null)
				{
					foreach(System.Web.UI.WebControls.RepeaterItem item in Repeater1.Items)
					{
						System.Web.UI.HtmlControls.HtmlInputCheckBox check = 
(System.Web.UI.HtmlControls.HtmlInputCheckBox)item.FindControl("check");
						System.Web.UI.HtmlControls.HtmlInputText category_name = 
(System.Web.UI.HtmlControls.HtmlInputText)item.FindControl("category_name");
						System.Web.UI.HtmlControls.HtmlInputText category_place = 
(System.Web.UI.HtmlControls.HtmlInputText)item.FindControl("category_place");
						if(check.Checked == true)
						{
							id2 = check.Value;
							category_name2 = category_name.Value;
							category_place2 = category_place.Value;
						}
					}
				}

			NewSql.GetFromDb(ref DataSetTemp, StrKey, CategoryTable);
			if(SetAllData(CategoryTable) == true)
			{
				Repeater1.DataSource = values;
				Repeater1.DataBind();
			}
...
Рейтинг: 0 / 0
05.05.2005, 12:56
    #33050285
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Чего ж ты сразу не сказал, что все это в контроле?

Тогда надо проверять

Код: plaintext
1.
2.
3.
4.
if (IsPostBack)
      if (Page.Request.Form[Delete.ClientID]!= null)
      {
               //some stuff that i going to do
       }
...
Рейтинг: 0 / 0
05.05.2005, 13:03
    #33050315
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Сделал Trace = "True"

Вот что выдает
Код: plaintext
1.
Categories1:Save System.Web.UI.HtmlControls.HtmlInputButton  166   0  
Categories1:Delete System.Web.UI.HtmlControls.HtmlInputButton  174   0  
...
Рейтинг: 0 / 0
05.05.2005, 13:09
    #33050346
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Он видит ClientID, но в if ну входит, может он его в форме не получает поэтому
Прям блин несчатье какое-то на мою голову.
...
Рейтинг: 0 / 0
05.05.2005, 13:10
    #33050347
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Короче, учите матчасть. Как проверять в данном случае я выше написал.
Из-за того, что кнопки в контроле, id для них формируется, исходя из их
вложенности, и это надо учитывать при проверке. Или использовать обычные
(не серверные) кнопки
...
Рейтинг: 0 / 0
05.05.2005, 13:14
    #33050360
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Пардон, вместо ClientID UniqueID
...
Рейтинг: 0 / 0
05.05.2005, 13:28
    #33050401
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Не работает оно, хоть ClientID хоть UniqueID
...
Рейтинг: 0 / 0
05.05.2005, 15:15
    #33050775
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Вот HTML контрола

Код: plaintext
1.
2.
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<INPUT type="submit" value="Submit1" runat="server" id="submit1">
<INPUT id="submit2" type="submit" value="Submit2" runat="server">


вот код класса

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
protected System.Web.UI.HtmlControls.HtmlInputButton submit2;
protected System.Web.UI.HtmlControls.HtmlInputButton submit1;

private void Page_Load(object sender, System.EventArgs e)
{
     if (Page.IsPostBack)
	if (Request[submit1.UniqueID] != null)
	       Response.Write("Submit1 clicked");
	if (Request[submit2.UniqueID] != null)
	      Response.Write("Submit2 clicked");
}


все работает
...
Рейтинг: 0 / 0
06.05.2005, 07:26
    #33051800
Antropos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с HtmlControls
Всем кто отозвался и пытался помочь спасибо вам за вашу помощь.

Kilroy

Тебе отдельное спасибо за твое терпение к моей проблеме и за помощь, благодаря тебе я решил свою проблему и теперь все работает.
Еще раз большое спасибо!
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с HtmlControls / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]