PDA

View Full Version : تکس باکس در گراید ویو



merychobi
شنبه 31 شهریور 1386, 14:29 عصر
سلام
با توجه به عکس ضمیمه می خوام با کلیک بر روی linkbutton تایید هر سطر محتویات تکس باکس متنی مرتبط با همان سطر شود.
می دونم چه طور به مقدار ستون mail دسترسی داشته باشم اما نمی دونم چه طور به تکس باکس دسترسی داشته باشم.

if (e.commandname==mail
{
????
}

abadanboy
شنبه 31 شهریور 1386, 16:05 عصر
C# CODE
حروف مشکل دار فارسی هستند اشتباه نشه


SqlConnection masir;
staticint test;
publicvoid Page_Load(object sender, EventArgs e) {

masir = newSqlConnection(Convert.ToString(Application["Server"]));
if (!Page.IsPostBack)
bindgrid();

}
publicvoid Edit(object sender, DataGridCommandEventArgs e) {
dg.Columns[0].HeaderText = "یï©ںï¬";
dg.EditItemIndex = (int)e.Item.ItemIndex;
bindgrid();

}
publicvoid Cancel(object sender, DataGridCommandEventArgs e)
{
if (dg.Columns[1].Visible == true)
{

dg.Columns[0].HeaderText = "éنی";
dg.EditItemIndex = -1;
bindgrid();
}
else {
dg.Columns[1].Visible = true;
dg.Columns[2].Visible = false;
dg.Columns[3].Visible = false;
}
}

publicvoid Delete(object sender, DataGridCommandEventArgs ee){

if (dg.Columns[1].Visible == true)
{
test= ee.Item.ItemIndex;
dg.Columns[1].Visible = false;
dg.Columns[2].Visible = true;
dg.Columns[3].Visible = true;
}
else
{
if (test == ee.Item.ItemIndex)
{
masir.Open();
SqlCommand taxi = newSqlCommand();
taxi.Connection = masir;
taxi.CommandText = "delete Login where Username='" + dg.DataKeys[(int)ee.Item.ItemIndex] + "'";
taxi.ExecuteNonQuery();
Response.Redirect("Delete.aspx");
dg.Columns[1].Visible = true;
dg.Columns[2].Visible = false;
dg.Columns[3].Visible = false;
}
}
}
publicvoid Update(object sender, DataGridCommandEventArgs e)
{
dg.Columns[0].HeaderText = "£ ¢";

SqlCommand taxi = newSqlCommand("update Login set Access=@a,Email=@e where Username=@u", masir);
taxi.Parameters.Add(newSqlParameter("@u",SqlDbType.Char,30));
taxi.Parameters.Add(newSqlParameter("@a", SqlDbType.Char,15));
taxi.Parameters.Add(newSqlParameter("@e", SqlDbType.Char, 70));
taxi.Parameters[0].Value = dg.DataKeys[(int)e.Item.ItemIndex];
taxi.Parameters[1].Value = ((TextBox)e.Item.Cells[5].Controls[0]).Text.Trim();
taxi.Parameters[2].Value = ((TextBox)e.Item.Cells[6].Controls[0]).Text.Trim();

masir.Open();
try
{

taxi.ExecuteNonQuery();
lblmsg.Text = "¢نïï©ں¢ ںë¤ںê ¬§";
dg.EditItemIndex = -1;

}
catch(SqlException f)
{
if (f.Number == 2627)
Response.Write("ERROR: A record already exists with the same primary key");
else
Response.Write(f.ToString() + "ERROR: Could not update record, please ensure the fields are correctly filled out");
}
masir.Close();
bindgrid();
}

publicvoid bindgrid() {

SqlDataAdapter da = newSqlDataAdapter("select Username,Access,Email from Login where Access=N'Modir' or Access=N'Oprator' ", masir);
DataSet ds = newDataSet();
da.Fill(ds, "Login");
dg.DataSource = ds.Tables["Login"].DefaultView;
dg.DataBind();
}


ASP CODE



<asp:DataGridID="dg"runat="server"OnDeleteCommand="Delete"OnCancelCommand="Cancel"OnUpdateCommand="Update"OnEditCommand="Edit"DataKeyField="Username"CellPadding="3"Height="110px"Width="315px"HorizontalAlign="Center"BackColor="#C0C0FF"BorderColor="#DEBA84"BorderStyle="None"BorderWidth="1px"CellSpacing="2">
<FooterStyleBackColor="#F7DFB5"ForeColor="#8C4510"BorderStyle="Solid"Font-Bold="False"Font-Italic="False"Font-Overline="False"Font-Strikeout="False"Font-Underline="False"/>
<SelectedItemStyleBackColor="#738A9C"Font-Bold="True"ForeColor="White"/>
<PagerStyleHorizontalAlign="Center"Mode="NumericPages"Font-Bold="False"Font-Italic="False"Font-Overline="False"Font-Strikeout="False"Font-Underline="False"/>
<ItemStyleBackColor="#E1FBE2"ForeColor="RoyalBlue"Font-Bold="True"Font-Italic="False"Font-Overline="False"Font-Strikeout="False"Font-Underline="False"HorizontalAlign="Center"/>
<HeaderStyleBackColor="SandyBrown"Font-Bold="True"ForeColor="White"BorderStyle="Solid"Font-Italic="False"Font-Overline="False"Font-Strikeout="False"Font-Underline="False"HorizontalAlign="Center"/>
<Columns>
<asp:EditCommandColumnButtonType="PushButton"EditText="یï©ںï¬"CancelText="éنی"UpdateText="£ ¢"/>
<asp:ButtonColumnCommandName="Delete"Text="Delete"></asp:ButtonColumn>
<asp:ButtonColumnCommandName="Delete"Text="Yes"Visible="False"></asp:ButtonColumn>
<asp:ButtonColumnCommandName="Cancel"Text="No"Visible="False"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>


حروف مشکل دار فارسی هستند اشتباه نشه

merychobi
شنبه 31 شهریور 1386, 16:51 عصر
با تشکر از لطف شما ولی این کدی که شما فرستادید برای دیتا گرید است در صورتی که مشکل من با گراید ویو است ثانیا من حذف و اضافه و ویرایش گراید ویو را بلدم ولی این مشکل من در هیچ کدام از این مد ها نیست .

abadanboy
شنبه 31 شهریور 1386, 22:11 عصر
ببین می تونی این طوری دسترسی داشته باشی حالا تو هر چی می خوای جا checkbox که من گذاشتم بزار ولی با این دستور می تونی textbox رو که checkbox اون فعاله پر کنی یکم فکر کنی به 10 مدل می تونی بنویسیش

‍C# CODE


protectedvoid btn_Click(object sender, EventArgs e)
{


foreach (GridViewRow dr in GridView1.Rows) {
TextBox cb = (TextBox)dr.Cells[0].Controls[1];
CheckBox bb = (CheckBox)dr.Cells[1].Controls[1];
if (bb.Checked)
{
cb.Text = "Powerd By";
}

}
}


ASP CODE

<asp:ButtonID="btn"runat="server"OnClick="btn_Click"Text="btn"/>
<asp:GridViewID="GridView1"runat="server"Width="332px"AutoGenerateColumns="False"DataKeyNames="ProductID"DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBoxrunat="server"ID="s2w"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBoxrunat="server"ID="dd"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="SELECT * FROM [Alphabetical list of products]"></asp:SqlDataSource>

merychobi
چهارشنبه 04 مهر 1386, 16:33 عصر
سوالم را طور دیگری مطرح می کنم
چون جواب نگرفتم
یک گراید ویو با دو ستون دارم ستون اول از نوع لینک باتون و ستون دوم دارای تکس باکس است می خواهم به طور مثال با کلیک بر روی لینک سطر اول در تکس باکس این سطر بنویسد a و با کلیک بر روی لینک سطر دوم در تکس باکس سطر دوم بنویسد b
شاید کار ساده ای باشه ولی من بلد نیستم
اعمال متداول با گراید ویو را نیز خوانده ام ولی بلد نیستم

merychobi
پنج شنبه 05 مهر 1386, 09:27 صبح
کسی کمک نمیکنه شاید سوال راحت باشه ولی من بلد نیستم

abolfazl585
پنج شنبه 05 مهر 1386, 09:56 صبح
دوست عزیز اگه پست قبلی رو با دقت می خوندید جواب خودتون رو میگرفتید ولی باز هم من براتون می گم:
برای دسترسی به هر کنترل از هر سلول در گرید ویو از خاصیت Controls استفاده میشه:
مثلا:


((TextBox)Grid1.Rows[0].Cells[1].Controls[0]).Text = "a";
و یا
((TextBox)Grid1.Rows[0].Cells[1].Controls["txtTitle"]).Text = "a";