gpt4 book ai didi

javascript - 自定义 DatePicker 在 GridView 中不起作用

转载 作者:行者123 更新时间:2023-12-03 03:41:50 25 4
gpt4 key购买 nike

我正在 ASP.NET 中的日期选择字段中使用以下代码.

<asp:TemplateField ItemStyle-Width="10%" HeaderText="Date of Birth">
<EditItemTemplate>
<br />
<asp:TextBox ID="text_master_dateedit" runat="server" Text='<%# Bind("MemberDOB", "{0:dd/MM/yyyy}") %>' Width="60%" CssClass="textfoot" ValidationGroup="editing" MaxLength="10" onkeypress="return false;" onkeyup="return false;" oncontextmenu="return false;" onpaste="return false;"></asp:TextBox> &nbsp;
<a href="javascript:NewCssCal('<%=text_master_dateedit.ClientID %>','DDMMYYYY')"><img id="Img1" alt="Pick a Date" src="Images/cal.png" width="25" height="25" style="vertical-align:middle;" /></a><br />
<asp:RequiredFieldValidator ID="requireddateedit" runat="server" ValidationGroup="editing" ForeColor="Red" Font-Bold="false" ControlToValidate="text_master_dateedit" ErrorMessage="Date required">*Required</asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="label_master_dateview" runat="server" Text='<%# Bind("MemberDOB", "{0:dd/MM/yyyy}") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<br />
<asp:TextBox ID="text_master_datenew" runat="server" Text='<%# Bind("MemberDOB", "{0:dd/MM/yyyy}") %>' Width="60%" CssClass="textfoot" ValidationGroup="adding" MaxLength="10" onkeypress="return false;" onkeyup="return false;" oncontextmenu="return false;" onpaste="return false;"></asp:TextBox> &nbsp;
<a href="javascript:NewCssCal('<%=text_master_datenew.ClientID %>','DDMMYYYY')"><img id="Img1" alt="Pick a Date" src="Images/cal.png" width="25" height="25" style="vertical-align:middle;" /></a><br />
<asp:RequiredFieldValidator ID="requireddatenew" runat="server" ValidationGroup="adding" ForeColor="White" Font-Bold="false" ControlToValidate="text_master_datenew" ErrorMessage="Date required">*Required</asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>

我在 GridView 中有文本字段和日期链接作为TemplateField 。当我运行代码时,出现以下错误。

Compiler Error Message: CS0103: The name 'text_master_dateedit' does not exist in the current context

但是同样的事情在外面也有效 GridView 。如何解决这里识别 GridView 内的文本字段 ID 的问题?我不想使用普通的 DatePicker因为我在所有项目中都使用此代码。有没有使用相同代码的解决方案来使其工作?

NewCssCal函数是JavaScript用于我所有项目中的日期选择字段的代码。它适用于除 GridView 内部之外的所有情况。 .

编辑

我还尝试使用 ClientIDMode="Static"但仍然无法正常工作。

在 C# 中,我使用下面的代码来访问日期字段的值,因为当文本字段位于 GridView 内时我无法直接访问它。 。 这有效。

protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = (GridViewRow)gv.Rows[e.RowIndex];
string date = ((TextBox)row.Cells[0].FindControl("text_master_dateedit")).‌​Text;
}

是否有类似的方法来访问此行中的文本字段?我想让这条线发挥作用。有没有办法访问文本字段的ID text_master_dateedit (gridview 内的文本字段)而不是 '<%=text_master_dateedit.ClientID %>' ??

这不起作用。

<a href="javascript:NewCssCal('<%=text_master_dateedit.ClientID %>','DDMMYYYY')"><img id="Img1" alt="Pick a Date" src="Images/cal.png" width="25" height="25" style="vertical-align:middle;" /></a>

页面加载

protected void Page_Load(object sender, EventArgs e)
{
try
{
if (Session["USER"] != null)
{
if (!Page.IsPostBack)
{
Tab1.CssClass = "Clicked";
MainView.ActiveViewIndex = 0;
}
}
else
{
Response.Redirect("LoginPage.aspx");
}
}
catch
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Error Occured: Try Again!')", true);
}
}

在页面加载中我只选择 Tab1这是 aspx 页面的第一个选项卡。我一共有三个GridView在页面和三个选项卡中。我正在使用 <asp:MultiView> 创建选项卡

最佳答案

您的代码显示:

string date = ((TextBox)row.Cells[0].FindControl("text_master_dateedit")).‌​Text;

这里的row是什么?

你能试试这个吗:

TextBox dateTxt   = (TextBox)GridViewID.Rows[CellIndex].FindControl("text_master_dateedit");
string dateString = dateTxt.Text;

对于客户端,您可以找到文本框的客户端 ID,如下所示:

'<%# ((GridViewRow)Container).FindControl("textDateSent").ClientID %>'

引用this post

希望这有帮助!

关于javascript - 自定义 DatePicker 在 GridView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45584860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com