PDA

View Full Version : ذخیره کردن محتویات کنترل HTML



Blackk_lightt
پنج شنبه 14 شهریور 1387, 09:32 صبح
سلام
من توی یه صفحه چند تا کنترل ASP دارم با دو تا Select که HTML هستن
حالا باید وقتی روی Button کلیک شد همه اینا تو بانک ذخیره شند
کنترل های Asp که مشگلی ندارند ولی تو Button_Click من چه جوری به Select هام دسترسی دارم ؟

milade
پنج شنبه 14 شهریور 1387, 09:40 صبح
همه اینا تو بانک ذخیره شند

بیشتر توضیح بدید.

علیرضا مداح
پنج شنبه 14 شهریور 1387, 10:28 صبح
سلام دوست عزیز،
برای دسترسی به کنترل های HTML در server-side باید runat="server" را به تعریف کنترل مورد نظر اضافه نمایید :


<select id="Select1" runat="server">


حال میتوانید به طور مثال در رویداد کلیک یک دکمه ، آیتم های آن را بررسی نمایید :


protected void Button1_Click(object sender, EventArgs e)
{
foreach (ListItem item in Select1.Items)
{
//Your Code Goes Here....
}
}

Blackk_lightt
پنج شنبه 14 شهریور 1387, 16:25 عصر
سلام
فکر کنم منظورمو بد متوجه شدید
به این کد توجه کنید :


<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>

<select id="Select1">
<option>A</option>
<option>B</option>
<option>C</option>
<option>D</option>
<option>E</option>
</select>

<asp:Button ID="Button1" runat="server" Text="Button" />


تو این کد چند تا کنترل ASP داریم با یه Select که Html هستش
وقتی رو Button1 کلیک میشه باید محتویات این TextBoxها با گزینه ای که تو Select انتخاب شده تو بانک ذخیره شه
خب TextBox ها که مشگلی ندارن
من نمیدونم گزینه انتخابی Select رو چه جوری ذخیره کنم
چون برای رویداد Change مربوط به Select یه کد جاوا اسکریپت نوشتم نمیتونم به جاش DropDown بزارم

علیرضا مداح
پنج شنبه 14 شهریور 1387, 16:39 عصر
من نمیدونم گزینه انتخابی Select رو چه جوری ذخیره کنم


با استفاده از کد زیر میتوانید مشخصات آیتم فعلی Select را بدست بیاورید و سپس در دیتابیس ذخیره نمایید :


protected void Button1_Click(object sender, EventArgs e)
{
ListItem currentItem = Select1.Items[Select1.SelectedIndex];
string currentText = currentItem.Text;
string currentValue = currentItem.Value;
///Database Code Goes Here
}

Blackk_lightt
پنج شنبه 14 شهریور 1387, 16:52 عصر
سلام
آقای مداح ارور میده


Compilation Error

Select1 رو نمیشناسه

علیرضا مداح
پنج شنبه 14 شهریور 1387, 16:59 عصر
سلام
آقای مداح ارور میده


همانطور که ذکر شد باید runat="server" را به تعریف Select اضافه نمایید تا در Code-Behind قابل دسترسی باشد :


<select id="Select1" runat="server">
<option>A</option>
<option>B</option>
<option>C</option>
<option>D</option>
<option>E</option>
</select>

Blackk_lightt
پنج شنبه 14 شهریور 1387, 17:18 عصر
سلام
ممنون اون مشگل حل شد
ولی چون PostBack میشه بازم ارور میده :


Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

چون همه select ها reset میشه.

علیرضا مداح
پنج شنبه 14 شهریور 1387, 18:41 عصر
به مثال زیر توجه کنید :


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<select id="Select1" runat="server">
<option>A</option>
<option>B</option>
<option>C</option>
<option>D</option>
<option>E</option>
</select>
</div>

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</form>
</body>
</html>



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Cryptography;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
ListItem currentItem = Select1.Items[Select1.SelectedIndex];
string currentText = currentItem.Text;
string currentValue = currentItem.Value;
Response.Write("Selected Text = " + currentText + " <br/> SelectedValue = " + currentValue);
}
}

Blackk_lightt
پنج شنبه 14 شهریور 1387, 19:08 عصر
سلام
ممنون آقای مداح
نمیدونم چرا سری پیش که امتحان کردم کار نکرد