将当前设置为ASP.Net SqlDataSource插入参数默认值
使用此ASP.Net,我们希望在用户单击DetailsView的“新建”按钮时,在日期文本框中显示今天的日期,以便在实际插入数据之前可以在文本框中看到日期将当前设置为ASP.Net SqlDataSource插入参数默认值,asp.net,parameters,default-value,sqldatasource,Asp.net,Parameters,Default Value,Sqldatasource,使用此ASP.Net,我们希望在用户单击DetailsView的“新建”按钮时,在日期文本框中显示今天的日期,以便在实际插入数据之前可以在文本框中看到日期 <InsertParameters> <asp:Parameter Name="ClassID" Type="Int32" /> <asp:Parameter Name="StudentID" Type="Int32" /> <asp:Parameter Name="Absen
<InsertParameters>
<asp:Parameter Name="ClassID" Type="Int32" />
<asp:Parameter Name="StudentID" Type="Int32" />
<asp:Parameter Name="Absent" Type="String" />
<asp:Parameter Name="Late" Type="String" />
<asp:Parameter Name="LateTimeArrivedAtSchool" Type="DateTime" />
<asp:Parameter DbType="Date" Name="DateAttendanceTaken" DefaultValue= "<%=DateTime.Now.ToString() %>"/>
</InsertParameters>
通过抓取ListView的插入项并找到
TextBoxDateAttendanceTakenInsert
textbox,可以使用new按钮的post back设置文本框
将文本框的值设置为DateTime.Now
VB:
这样就可以了,每次单击new时,它只需将insert项中的文本框设置为当前日期时间。感谢您的快速回复。由于我不知道如何进行编码,您能展示示例编码吗?谢谢,谢谢。为了让事情变得更简单,这是在一个基于母版页的网页中,如果有帮助的话,该母版页的内容id为“ContentBody”。:-)谢谢你的编码。我试着用一个转换器将它转换成VB.Net,但是转换器说object control=行有一个错误。谢谢,差不多就到了。我得到这个错误可能是因为它是一个DetailsView而不是ListView:错误1参数没有为“Public Overridable Sub InsertItem(causesValidation为布尔值)”的参数“causesValidation”指定'.C:\Development\Knowledge Academy Internal\Knowledge Academy\Knowledge Academy\Attention.aspx.vb 148 51 Knowledge Academy用于更正。代码将编译,当我单击“新建”按钮时,出现以下错误:对象引用未设置为对象的实例。看起来FindControl找不到它。我通过直接从文本框的标记id复制名称来确保拼写正确。
<asp:TemplateField
HeaderText="Attendance Date:" SortExpression="DateAttendanceTaken">
<EditItemTemplate>
<asp:TextBox
ID="TextBoxDateAttendanceTaken"
runat="server"
Text='<%# Bind("DateAttendanceTaken", "{0:MM/dd/yyyy}") %>'>
</asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorEditDate" runat="server" ControlToValidate="TextBoxDateAttendanceTaken"
ErrorMessage="Please enter the Attendance Date." Font-Bold="True" Font-Italic="True" ForeColor="Red"
SetFocusOnError="True" Display="Dynamic"></asp:RequiredFieldValidator>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox
ID="TextBoxDateAttendanceTakenInsert"
runat="server"
Text='<%# Bind("DateAttendanceTaken", "{0:MM/dd/yyyy}") %>'>
</asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorInsertDate" runat="server" ControlToValidate="TextBoxDateAttendanceTakenInsert"
ErrorMessage="Please enter the Attendance Date." Font-Bold="True" Font-Italic="True" ForeColor="Red"
SetFocusOnError="True" Display="Dynamic"></asp:RequiredFieldValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label
ID="LabelDateAttendanceTaken"
runat="server"
Text='<%# Bind("DateAttendanceTaken", "{0:MM/dd/yyyy}") %>'>
</asp:Label>
</ItemTemplate>
<ItemStyle ForeColor="Blue" />
</asp:TemplateField>
<InsertItemTemplate>
<asp:TextBox
ID="TextBoxDateAttendanceTakenInsert"
runat="server"
Text='<%# Bind("DateAttendanceTaken", "{0:MM/dd/yyyy}") %>'
OnDataBinding="TextBoxDateAttendanceTakenInsert_DataBinding">
</asp:TextBox>
</InsertItemTemplate>
Protected Sub TextBoxDateAttendanceTakenInsert_DataBinding(sender As Object, e As EventArgs)
Dim txtBox As New TextBox
txtBox = DetailsView.FindControl("TextBoxDateAttendanceTakenInsert")
txtBox.Text = DateTime.Now.ToString("d")
End Sub
protected void NewButtonClick(object sender, EventArgs e)
{
//Code to change to set Insert
//get insert item
object control = MyDetailsView.FindControl("TextBoxDateAttendanceTaken")
//check for null
if(control != null){
TextBox tBox = (TextBox)control; //cast to TextBox
tBox.Text = DateTime.Now.ToString(); //set text
}
}
Dim tBox As TextBox = CType(MyDetailsView.FindControl("TextBoxDateAttendanceTaken"), TextBox)
tBox.Text = DateTime.Now.ToString