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

У меня есть некая проблема с кнопкой, целый день провозился но никак не могу решить.
На моей странице у меня есть 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
Проблема с HtmlControls
    #33050026
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повесь на каждую кнопку свой обработчик и делай все в них...

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

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

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

Сергей
...
Рейтинг: 0 / 0
Проблема с HtmlControls
    #33050093
Kilroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обрати внимание на атрибут 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
Проблема с HtmlControls
    #33050131
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не проще использовать WebControl - Button и просто подписаться на его событие клика, тогда не надо будет себе мозги парить?
_______________________________________________________
Господи, сколько ещё не сделано... А сколько ещё предстоит не сделать...!
...
Рейтинг: 0 / 0
Проблема с HtmlControls
    #33050140
Antropos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gerss

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

Kilroy

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

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

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

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

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

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

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

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
Проблема с HtmlControls
    #33050285
Kilroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего ж ты сразу не сказал, что все это в контроле?

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

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

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

Kilroy

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


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