abdul subhan mohammed Ответов: 4

как заполнить текстовое поле на selectedindexchanged в repeater in asp.net


Привет ребята,

У меня есть ретранслятор,
где у меня есть выпадающий список n текстовое поле.

onselectedindexchanged событие ddl, я хочу, чтобы заполнить конкретное текстовое поле.

может быть, вы используете clientid или что-то еще....

плз предложите мне;

код ASP:
<asp:Repeater ID="Repeater1" runat="server"
                                   onitemdatabound="Repeater1_ItemDataBound">
                                   <HeaderTemplate>
                                       <table class="table table-striped table-bordered" id="a0">
                                       <thead>
                                       <tr>
                                           <th>DoorNo#</th>
                                           <th>PlateNo#</th>
                                           <th>Status</th>
                                           <th>Driver</th>
                                           <th>Department</th>
                                           <th>Location</th>
                                       </tr>
                                   </thead>
                                       <tbody>
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                           <tr class="odd gradeX">
                                               <td>
                                                   <asp:Label ID="lbldoorno" runat="server" Text='<%# Eval("DoorNo")%>'></asp:Label></td>
                                               <td><asp:Label ID="lblplateno" runat="server" Text='<%# Eval("PlateNo")%>'></asp:Label></td>
                                               <td><asp:DropDownList ID="ddlstatus" OnSelectedIndexChanged="ddldept_SelectedIndexChanged"
                                                AutoPostBack="true" Width="100px" runat="server">
                                                   <asp:ListItem Value="1"> Active </asp:ListItem>
                                                   <asp:ListItem Value="2"> InActive</asp:ListItem>
                                                   </asp:DropDownList></td>
                                               <td><asp:TextBox ID="txtdriver" runat="server" Text="a"></asp:TextBox></td>
                                               <td>
                                                   <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                                                   <ContentTemplate>
                                                   <asp:DropDownList ID="ddldept" runat="server">
                                                   </asp:DropDownList>
                                                   </ContentTemplate>
                                                   <Triggers>
                                                   <asp:PostBackTrigger ControlID="ddldept" />
                                                   <%--<asp:PostBackTrigger ControlID="ddldept" />--%>
                                                   </Triggers>
                                                   </asp:UpdatePanel>
                                               </td>
                                               <td><asp:TextBox ID="txtlocation" Text="yard" runat="server"></asp:TextBox></td>

                                           </tr>
                                    </ItemTemplate>
                                    <FooterTemplate>
                                       <table width="100%">
                                       <tbody><tr><td align="center"><br />
                                           <asp:Button ID="btnCncl" runat="server" Text="Cancel" CssClass="btn btn-danger btn-small"  Font-Bold="True" onclick="ButtonCncl_Click"  />
                                            
                                           <asp:Button ID="btnSave" runat="server" CssClass="btn btn-success btn-small" Text="Save" Font-Bold="True" onclick="ButtonSave_Click" /></td></tr></tbody>
                                       </table>
                                    </FooterTemplate>
                                   </asp:Repeater>


мой код:

protected void ddldept_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList d = (DropDownList)sender;
            //TextBox t = (TextBox)sender;
            
            int index = Convert.ToInt32(d.SelectedValue);

            if (index == 2)
            {
                TextBox tb = FindControl("txtdriver") as TextBox;
               tb.text ="N/a";
                TextBox tbl = FindControl("txtlocation") as TextBox;
                tbl.Textt = "Yard";
            }
            // Use d here
        }


пожалуйста, помогите мне.... ...


спасибо

Krunal Rohit

Ладно, так в чем же ошибка ?

abdul subhan mohammed

Исключение NullReferenceException,

я хочу заполнить его, используя clientid/любые предложения...

просто требование состоит в том, чтобы заполнить текстовое поле на выбранном выпадающем списке измененным...

Krunal Rohit

Этот идентификатор текстового поля правильный ?

abdul subhan mohammed

у меня есть текстовое поле в ретрансляторе,

даже я попробовал findcontrol("repeater1").findcontrol("txtdriver") в качестве текстового поля;

но все равно не работает...

4 Ответов

Рейтинг:
1

JatinKhimani

Вы находите текстовое поле неправильным образом, который gioven ошибка, как вы сказали
Попробуйте запустить этот код, чтобы он работал с вашим текущий выбранный индекс в выпадающих элементах repeter..

охраняемых недействительными ddldept_SelectedIndexChanged(объект отправителя, EventArgs в электронной)
{
DropDownList d = (DropDownList)отправитель;
//TextBox t = (текстовое поле)отправитель;

int Value = конвертировать.ToInt32(d.SelectedValue);
тип int индекс = Д.Свойство tabindex;
если (значение == 2)
{
TextBox tb = (текстовое поле)Repeater1.Элементы[индекс].FindControl("txtdriver");
терабайт.Text = "N/a";
TextBox tbl = (текстовое поле)Repeater1.Элементы[индекс].FindControl("txtlocation");
табл.Текст = "Двор";
}
// Используйте d здесь
}


Рейтинг:
1

Member 14825535

охраняемых недействительными ddldept_SelectedIndexChanged(объект отправителя, EventArgs в электронной)
{
DropDownList d= (DropDownList)отправитель;
инт currentItemIndex = ((RepeaterItem)д. NamingContainer).ItemIndex;
Label lbloriginalvalue =(Label)rptAgentFields.Элементы[currentItemIndex].FindControl("lbloriginalvalue");
строковое значение = d.SelectedValue;
}


TheRealSteveJudge

Этому вопросу уже более 6 лет.
Надеюсь, оперативник еще жив.

Рейтинг:
0

Omersayeed

Уважаемый Субхан,

Управление ретранслятором используется для отображения повторяющегося шаблона данных, таких как сетка или списки

Примеры:
http://www.w3schools.com/aspnet/aspnet_repeater.asp

и

msdn.microsoft.com/en-us/magazine/cc163780.aspx

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

Надеюсь, это поможет

С уважением
Омер.


[no name]

Да вы правы

Рейтинг:
0

Krunal Rohit

protected void ddldept_SelectedIndexChanged(object sender, EventArgs e)
{
if(!IsPostBack)
    {
        DropDownList d = (DropDownList)sender;
         //TextBox t = (TextBox)sender;
                    
          int index = Convert.ToInt32(d.SelectedValue);
         
                    if (index == 2)
                    {
                        TextBox tb = FindControl("txtdriver") as TextBox;
                       tb.text ="N/a";
                        TextBox tbl = FindControl("txtlocation") as TextBox;
                        tbl.Textt = "Yard";
                    }
        }
}


abdul subhan mohammed

плохая попытка!, не работает!

abdul subhan mohammed

textbox tb = findcontrol("txtdriver") как текстовое поле;

становится нулевым, его не найти этот "txtdriver"...

вот почему я-исключение nullreferenceexception...