PDA

View Full Version : مبتدی: مشکل با مقدار textbox درون listview



darkwish
شنبه 07 اسفند 1400, 15:19 عصر
سلام دوستان من یه مشکل داشتم در یک فرم asp.net از یک listview استفاده میکنم که درون آن یک textbox دارم میخواستم که کاربر یه کد را داخل اون بنویسه و با دکمه روبروش که باز هم داخل listview هست ثبت در دیتا بیس بشه .
مشکل من اینه که به محتوات داخل textbox دسترسی ندارم .با این کد ها کار کردم ولی همیشه مقدار textbox را خالی برمیگردونه .



protected void LV_Send_Order_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "SendOrder")
{
TextBox txtC = (TextBox)e.Item.FindControl("txt_CSO");
string s = txtC.Text.ToString();
Alert.Show(s);
}


}






<asp:ListView ID="LV_Send_Order" runat="server" OnItemCommand="LV_Send_Order_ItemCommand" OnItemEditing="LV_Send_Order_ItemEditing" OnItemUpdating="LV_Send_Order_ItemUpdating" OnSelectedIndexChanged="LV_Send_Order_SelectedIndexChanged">
<ItemTemplate>
شماره سفارش :
<%#Eval("id") %>

&nbsp&nbsp&nbsp
نام و نام خانوادگی :
<%#Eval("name_famil") %>

&nbsp&nbsp&nbsp
شماره تماس :
<%#Eval("tell") %>


<br />
آدرس :
<%#Eval("adress") %>


<br />
تاریخ ثبت سفارش :
<%#Eval("date") %>
<br />
وضعیت سفارش :
<%#Eval("vaziyat") %>
<br />
توضیحات :
<%#Eval("tozihat") %>
<br />
<br />
کد رهگیری ارسال : &nbsp
<asp:TextBox ID="txt_CSO" runat="server" BorderStyle="Ridge" BorderWidth="2" Height="25"></asp:TextBox>


<asp:LinkButton ID="lb_Send_Order" runat="server" CommandName="SendOrder">ثبت ارسال</asp:LinkButton>
<br />
<br />
<img alt="" src="img/u.jpg" style="width: 100%; height: 3px" />
</ItemTemplate>
</asp:ListView>

mazoolagh
یک شنبه 08 اسفند 1400, 08:29 صبح
سلام و روز خوش

در نگاه اول که هیچ مشکلی دیده نمیشه!
وقتی debug میکنین اون findcontrol تکسباکس رو درست پیدا میکنه؟

darkwish
یک شنبه 08 اسفند 1400, 11:41 صبح
بله دست میشناسه متن رو که مینویسی ولی مقدار داخل اون در کد ها خالی هست

mazoolagh
یک شنبه 08 اسفند 1400, 13:34 عصر
این کد خیلی سرراست و ساده است و نباید اینجوری بشه - حدس میزنم یک event دیگه پیش از itemcommand اجرا میشه و در اونجا هست که مقدار تکسباکس پاک میشه.
شما در همه رخدادهای لیست ویو یک breakpoint بذارین و بررسی کنین این رو.

یا موقتا مابقی رو کلا کنار بگذارین و فقط همین رخداد را نگه دارین و تست کنین.

ضمنا اون tostring در عبارت زیر بنظر اضافی میاد - البته تاثیری نداره در این قضیه:

txtC.Text.ToString();