Я пытаюсь определить состояние кнопок в зависимости от соответствующего текстового поля. Имена те же, что и префиксы. Текстовые поля и кнопки расположены в таблице на странице.FindControl Returning Null
<asp:Table ID="Table1" runat="server" CssClass="table">
<asp:TableRow>
<asp:TableCell Width="15%">
<asp:Label ID="lblRequestHeader" runat="server" Text="Requested" CssClass="bold text-center"
Width="90%"></asp:Label>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Label ID="lblApprovalHeader" runat="server" Text="Approval" CssClass="bold text-center"
Width="90%"></asp:Label>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Label ID="lblApprovalTimeHeader" runat="server" Text="Date/Time of Approval"
CssClass="bold text-center" Width="90%"></asp:Label>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Label ID="lblReadyHeader" runat="server" Text="Ready To Pick Up" CssClass="bold text-center"
Width="90%"></asp:Label>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Label ID="lblCollectedHeader" runat="server" Text="Collected By TestHouse" CssClass="bold text-center"
Width="90%"></asp:Label>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Label ID="lblDeliveredHeader" runat="server" Text="Delivered From TestHouse"
CssClass="bold text-center" Width="90%"></asp:Label>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell Width="15%">
<asp:TextBox ID="txtRequestTime" runat="server" Width="90%"> </asp:TextBox>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:TextBox ID="txtApproval" runat="server" Width="90%"></asp:TextBox>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:TextBox ID="txtApprovalTime" runat="server" Width="90%"></asp:TextBox>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:TextBox ID="txtReadyTime" runat="server" Width="90%"></asp:TextBox>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:TextBox ID="txtCollectedTime" runat="server" Width="90%"></asp:TextBox>
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:TextBox ID="txtDeliveredTime" runat="server" Width="90%"></asp:TextBox>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell Width="15%">
</asp:TableCell>
<asp:TableCell Width="15%">
</asp:TableCell>
<asp:TableCell Width="15%">
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Button ID="btnReadyTime" runat="server" Text="Ready To Collect" Width="90%" />
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Button ID="btnCollectedTime" runat="server" Text="Collected" Width="90%" />
</asp:TableCell>
<asp:TableCell Width="15%">
<asp:Button ID="btnDeliveredTime" runat="server" Text="Delivered" Width="90%" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
Текстовое поле заполняется с помощью dataretrieval, и состояние кнопки затем устанавливается под названием метода следующим образом:
txtReadyTime.Text = slabdetails.ReadyTimestamp.ToString();
textboxenabled(txtReadyTime);
Этот метод изменяет имя текстового поля с именем кнопки, а затем пытается найти кнопку для включения/выключения.
public void textboxenabled(TextBox box)
{
string btnName = box.ID.Replace("txt", "btn");
try
{
Button btn = FindControl(btnName) as Button;
if (box.Text == "")
btn.Enabled = true;
else
btn.Enabled = false;
}
catch
{
}
}
Однако, несмотря на то, что строка соответствует именам кнопок отлично, элемент управления возвращает значение null. Что можно сделать для решения этой проблемы?
Вы прошли через него с помощью отладчика? – horHAY
если вы выполняете 'object obj = FindControl (btnName);', то это возвращает null? –
поиск объекта также возвращает null – nickson104